第五章 分布式協調系統

2021-10-06 03:30:49 字數 1030 閱讀 2671

chubby

暫不表
zookeeper

客戶端是通過tcp與zookeeper連線,tcp可以保證客戶端的命令是順序收到的

zookeeper通過「重放日誌」結合「模糊快照」來對伺服器故障進行容錯。「重放日誌」是操作記憶體資料前先寫日誌。「模糊快照「是週期性的指直接用深度遍歷的方式將記憶體樹儲存到外部檔案中,在此期間,記憶體樹允許被改動。但是由於zookeeper的操作保證冪等性,於是在恢復的時候,載入模糊快照同時執行」重放日誌「(同一操作可能執行多次但是沒有關係)即可恢復。

領導者選舉

所有程序嘗試在一特定路徑下建立臨時節點leader,內容為自身資訊,建立成功則成為leader,否則讀取該節點,獲取leader資訊,自己狀態設定為follower,同時在leader節點上設定觀察標識,如果其被刪除則獲取通知。

配置動態更新

配置檔案資訊放入節點a中,分布式系統的客戶端啟動時讀取該節點中的內容,同時在該節點設定觀察標識若該節點中內容發生改變則通知對應的客戶端。

組員成員管理

當乙個集群需要擴充套件更多的機器應對更大的負載或者有的節點掛掉了,主控伺服器如何得知呢。我們可以利用zk的臨時順序節點,例如每當有新機器加入時我們就在節點b下建立與之對應的臨時節點,同時主節點通過呼叫getchildren(/path/b,true),來讓zk通知b下節點的變化。

任務分配

有新任務時,在zk的task節點下建立節點task001,監控程序在task目錄下註冊了監聽標識,因此監控程序會被通知,然後監控程序在mechine節點下挑選乙個節點建立task001節點,對應mechine收到通知,然後執行任務,結束後,task被刪除。

分布式鎖

可以利用臨時順序節點,多個程序在節點c下建立節點,然後判斷自己對應的節點是不是最小的,如果是,那麼它獲得鎖,否則找到自己上面的節點,對他設定觀察標識,當該節點被刪除後,再次執行上面的邏輯。

雙向路障同步

就是有兩個同步點,都到了a才可以執行對應task,都執行完了該task,才能執行接下來的程式。可以利用臨時節點,如和設定可以自由發揮,不難。

架構 第五章 分布式架構的演進

適用於小型 小型管理系統,將所有功能都部署到乙個功能裡,簡單易用。缺點 1 效能擴充套件比較難 2 協同開發問題 3 不利於公升級維護 通過切分業務來實現各個模組獨立部署,降低了維護和部署的難度,團隊各司其職更易管理,效能擴充套件也更方便,更有針對性。缺點 公用模組無法重複利用,開發性的浪費 將各個...

分布式系統協調zookeeper

zookeeper是hadoop的正式子專案,它是乙個針對大型分布式系統的可靠協調系統,提供的功能包括 配置維護 名字服務 分布式同步 組服務等。zookeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效 功能穩定的系統提供給使用者。zookeeper是google的chub...

分布式系統協調 ZooKeeper

zookeeper是hadoop的正式子專案,它是乙個針對大型分布式系統的可靠協調系統,提供的功能包括 配置維護 名字服務 分布式同步 組服務等。zookeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效 功能穩定的系統提供給使用者。zookeeper是google的chub...