zookeeper如何保證資料的一致性?

2021-10-09 02:25:17 字數 445 閱讀 2764

1. 保證資料的一致性有兩種情況:第一是故障恢復階段的資料同步,即新leader選舉之後的資料同步;第二是leader處理完事務請求與follower保持資料同步。

2.1 故障恢復階段的資料同步:leader為每個follower準備乙個佇列,將沒有被同步的事務以proposal請求形式放入佇列,然後對每個事務請求追加乙個commit請求,表示該事務被提交,完成資料的同步。

2.2 leader處理事務請求與follower保持資料同步:leader收到事務請求之後,將事務轉化為proposal,由leader為每個follower建立乙個佇列,將事務請求按順序放入請求佇列當中,之後按事務請求向follower發出訊息廣播該提案,follower收到後會以事務的形式寫入本地日誌,並且向leader傳送ack請求,leader收到一半以上的follower響應,會向其他follower發出commit訊息,同時leader提交這個提案。

通俗理解ZooKeeper是如何保證資料一致性的

zookeeper是個集群,內部有多個server,每個server都可以連線多個client,每個client都可以修改server中的資料 zookeeper可以保證每個server內的資料完全一致,是如何實現的呢?答 資料一致性是靠 paxos 演算法保證的,paxos可以說是分布式一致性演算...

Katta如何使用Zookeeper 資料更新2

當client連線到follower,並發出資料更新的請求時 1.follower的commitprocessor將阻塞request,直到leader發出commit通知 2.follower把資料更新的request 給leader,leader然後發起資料更新同步的過程 具體如下圖 注意 le...

Mysql如何保證資料不會丟失

簡單來說就是依靠redo log和binlog保證持久化到磁碟後就可以保證,異常重啟資料可以正常恢復 這裡主要說下這兩個log的寫入機制。乙個事務執行的過程中,會先把日誌寫入到binlog cache中,事務提交的時候再把binlog cache中的日誌寫到binlog中。系統給binlog cac...