1. 程式人生 > >Zookeeper ZAB協議

Zookeeper ZAB協議

Zookeeper Automic Broadcast(ZAB),是paxos經典實現。

ZAB(zookeeper)中節點分四個狀態:

1.looking:選舉leader的狀態(崩潰下恢復)

2.follwing:跟隨者(follower)的狀態,服從leader的命令

3.leading:當前節點是Leader,負責協調工作

4.observing:observer(觀察者),不參與選舉,只讀節點;

ZBA中的兩種模式:崩潰恢復,訊息廣播;

崩潰恢復階段,在恢復階段沒個server,既是提交者,又是批准者;

1.每個沒有崩潰的server都有一張選票,投給自己

2.蒐集各個伺服器的投票

3.比較投票,比較邏輯:優先比較事務Id(取最大的),然後比較leader的週期id(如果事務Id相同再比較週期Id,取最大);

4.改變伺服器的狀態(崩潰恢復==>資料同步,或者崩潰恢復===》訊息廣播)

在檢視節點資訊時 有Zxid(64位資料結構)屬性,他是有周期ID和shiwuId組成;前32位是Leader的週期Id(myId),後32位表示事務的自增序列(單調遞增序列),只要客戶段請求,後32位就會加一遞增;