安装Zookeeper
简介
Zookeeper 是一个非常流行的分布式系统协调服务,目前的应用非常的广泛,其主要特点:
- 分布式集群
- 高可用性
- 奇数个节点
其应用场景有如下:
- 服务器主从选举。假设我们有多个服务器需要提供服务,但是为了数据的一致性,我们需要每一个时刻只能有一个服务器来提供服务,其他服务器做为主服务器的备份,如果主服务器挂了,立马备份服务器就成了主服务器进行工作。这种场景常见于数据库服务器
- 批量更新配置,如果我们有多个服务器节点需要更新配置文件的内容,这个时候如果挨个去改,很容易出错,尤其是服务器很多的情况下,统一推送配置文件,就显得很重要。因此我们可以将配置文件存放在第三方,修改后,通知zookeeper通知其他节点,各个节点自己读取配置文件。
安装
安装Jdk
下载zookeeper
1 2 3
| 1. 下载 2. 解压 tar -zxvf zookeeper.tar.gz
|
zookeeper的配置文件
1 2 3 4 5 6 7 8 9 10
| # 文件位于 zookeeper/conf/zoo.cfg
tickTime=2000 dataDir=/data/zookeeper clientPort=2181 initLimit=5 syncLimit=2 server.1=192.168.31.144:2888:3888 server.2=192.168.31.20:2888:3888 server.3=192.168.31.223:2888:3888
|
将zookeeper复制到多个服务器上面
1 2
| scp -r zookeeper root@192.168.31.20:. scp -r zookeeper root@192.168.31.44:.
|
启动
1
| ./zookeeper/bin/zkServer.sh start
|
查看状态
1
| ./zookeeper/bin/zkServer.sh status
|
完成后



python+zookeeper
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| from kazoo.client import KazooClient
zk = KazooClient(hosts="192.168.31.144:2181,192.168.31.20:2181,192.168.31.223:2181") zk.start()
zk.delete("/bb/aa/validator",recursive=True)
result = zk.create('/bb/aa/validator',b'validator_huabei_1') print(result)
zk.set("/bb/aa/validator",b"updated new message")
data,stat = zk.get("/bb/aa/validator") print(data.decode('utf-8')) print(stat)
@zk.DataWatch("/bb/aa/validator") def watch_node(data, stat): print("Version: %s, data: %s" % (stat, data.decode("utf-8")))
|
参考
ZooKeeper简介与安装
zookeeper伪集群启动失败失败:Invalid config, exiting abnormally
Python与ZooKeeper集群连接