推薦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編号一緻