Zookeeper实战与源码剖析学习笔记

Posted by Lucky Xue on 2020-05-09

安装zookeeper

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# brew搜索zookeeper应用
brew search zookeeper
# brew安装zookeeper
brew install -v zookeeper
# 启动zookeeper服务端,输入以下信息
zkServer start
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Starting zookeeper ... STARTED
# 查看zookeeper服务端,结果一直显示无法连接服务,感觉是brew下载的应用有问题
# 网上大多文章指出也许是zoo.cfg配置文件中dataDir或logDataDir配置有问题,
# 或者防火墙配置导致没有权限生成这些目录,所以启动失败
zkServer status
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.

# 通过Docker安装zookeeper
docker pull zookeeper
docker run --privileged=true --name zookeeper -p 2181:2181 -d zookeeper
docker run -it --rm --link zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper

设计一个master-worker的组成员管理系统,要求系统中只能有一个master,master能实时获取系统中worker的情况

1
2
3
4
5
6
7
8
9
10
11
12
13
# 在一台客户端(主节点)创建/master znode成功后成为master节点
create -e /master "m1:8081"
# 在另一台客户端(从节点)创建/master znode失败后成为slave节点,监控/master znode的数据状态信息
stat -w /master
# 当master节点会话断开连接时,临时节点/master znode就会被删除,从节点就可以继续竞争成为master节点

# 在一台客户端(主节点)创建/workers znode
create /workers "m1:8081"
# 并且在主节点监控/workers znode的状态信息,包括从节点变化状态信息
ls -w /workers
# 分别在其他客户端(从节点)创建临时节点,然后主节点就可以监控主节点/workers状态信息
create -e /workers/w1 "w1:8082"
create -e /workers/w2 "w2:8083"

关注【憨才好运】微信公众号,了解更多精彩内容⬇️⬇️⬇️

continuous_deployment