推荐zookeeper信息查看工具:zooInspector
一、zookeeper分布式锁
zookeeper分布式锁往往可以作为主从的管理方案,mycat1.6即将使用zookeeper作为主从管理
原理大概为
zookeeper的结构为树结构,每个注册的节点都在这颗树上
一个主节点和一个备用主节点向zookeeper进行注册,假设注册后节点分别为master-000001和master-000002
zookeeper进行选举,选举编号小的将在选举中获胜,获得分布式锁,成为主节点,这里为master-000001
如果master-000001挂了,通过watch发送事件,将master-000001删除。重新进行选举
这个时候选举master-000002作为主节点
如果master-000001恢复,通过watch发送时间,重新注册master-000001位master-000003,重新进行选举
这个时候还是选举master-000002作为主节点
这样就避免了master-000001假死造成的双主节点问题
二、zookeeper集群
选举算法
1、一半以上的机器同意才能成为leader
2、一半机器挂掉,则整体挂掉
所以zookepper集群往往是奇数
三、搭建
1、zookeeper必须修改zoo_sample.cfg为zoo.cfg
2、创建data目录
3、修改zoo.cfg
3.1 修改dataDir 比如:dataDir=/usr/local/zookeeper01/data/
3.2 修改端口号 比如:clientPort=2181
3.3添加节点信息 比如:server.1=192.168.160.128:2881:3881
server.2=192.168.160.128:2882:3882
server.3=192.168.160.128:2883:3883
4、data目录下创建myid文件,在myid中指定节点编号,和zoo.cfg中的server编号一致