Zookeeper ZAB協議
阿新 • • 發佈:2018-12-18
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位就會加一遞增;