天天看點

zookeeper分布式鎖以及叢集

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

繼續閱讀