zookeeper寫數據流程


1.zookeeper中任意節點收到寫請求,如果是follower節點,則會把寫請求轉發給leader,如果是leader節點就直接進行下一步。

2.leader生成一個新的事務並為這個事務生成一個唯一的ZXID

3.leader將這個事務發送給所有的follows節點

4.follower節點將收到的事務請求加入到歷史隊列(history queue)中,並返回ack確認包.

5.當leader收到半數以上的follower的ack消息,leader就進行寫入操作,並且發送給所有follower 進行這個寫request 持久化操作的commit(也帶有這個zxid),當follower接收到commit還會進行一次check(隊列中zxid和commit中的zxid比較),正確則進行寫入操作,否則去sync leader數據.

 即leader接受到寫請求(標記為zxid)就會發送proposal給所有follower,follower接受到請求先把zxid寫入到隊列中並返回ack確認包,當leader收到超過半數follower回傳的ack后就進行寫入操作,並且發送給所有follower 進行這個寫request 持久化操作的commit(也帶有這個zxid),當follower接收到commit還會進行一次check(隊列中zxid和commit中的zxid比較),正確則進行寫入操作,否則去sync leader數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM