netty集群簡單的集群方案:zk用來實現服務發現的功能,通過高效能的netty網路框架作為伺服器,註冊到zk中,client請求到zk中選取可用的netty伺服器,選取策略有:輪詢、雜湊、ip分組、加權分組(均衡負載和服務發現的功能),netty伺服器關閉時主動到zk登出。
zab演算法:
zookeeper官方文件說明,zab演算法提供崩潰可恢復的原子訊息廣播演算法,paxos是一種通用的分布式一致性演算法。zab的目標是構建乙個分布式資料主備系統,針對資料主備系統。paxos的目的是構建乙個分布式一致性的狀態系統,在各個node節點上的各種狀態的一致性。
zap的原理:
1 , zk選取乙個主伺服器處理客戶端的請求,主伺服器使用zab協議原子廣播協議,通過proposal通知其他伺服器端資料狀態的改變。
2 , 在分布式應用中,事務a可能依賴於事務b、事務c,所以zk需要保證在處理變更a時,b和c變更已經被執行了。
3 , 考慮到任何主程序都有可能崩潰或者宕機,所以需要考慮主程序在上述情況下,分布式系統仍然能夠正常工作。
zab協議的處理流程:
zk定義了leader、follower、observer伺服器,leader負責協調處理所有client事務,leader將客戶端事務轉變為proposal事務,leader將這個proposal**給其他follower,leader等待其他follower正確反饋,之後leader會向所有follower下發commit訊息,提交proposal,處理proposal事務。
zab協議具體內容:
zab協議主要包括兩種基本的模式:崩潰恢復、原子廣播協議、資料同步。
原子廣播:leader伺服器向所有follower伺服器原子廣播。
崩潰恢復:當乙個leader與過半的follower失去聯絡時,zookeeper集群即認為leader處於崩潰狀態,follower會elect乙個新的leader。
資料同步:當選舉出行的leader伺服器時,需要保證日誌中的所有proposal是否已經半數通過了,即所有的proposal事務是否已經表決了。
zab演算法描述:
zab演算法主要分為原子廣播和崩潰恢復,細分為三個階段,分別為discovery、sync、broadcast。
discovery主要是leader選舉的過程、準leader、follower。
sync:
廣播的過程:接收客戶端的請求,進行訊息廣播流程。
從paxos到zookeeper讀書筆記(第六章)
zookeeper的典型應用場景 zookeeper應用場景主要包括 發布 訂閱 負載均衡 命名服務 分布式協調 通知 註冊功能 集群管理 master選舉 分布式鎖 分布式訊息佇列。zk實現資料發布 訂閱服務 發布 訂閱通常有兩種模式 push poll的方式為客戶端提供服務。主要應用於分布式中,...
從遠端呼叫服務架構設計到ZooKeeper技術詳解
這篇文章是在csdn首頁看到的 對作者原文進行了一定的編輯 部落格原址在cnblogs,分為上下兩篇,感覺用來理解zookeeper確實不錯,值得推薦!下面是具體 啦!上篇 主要介紹遠端呼叫服務架構設計 下篇 主要介紹zookeeper技術詳解 作者也非常有趣,上篇選擇在2013年的最後一天發布,下...
從Paxos不違反CAP來解釋什麼是CAP定理
cap定理是分布式領域當中非常著名的定理,也是大家津津樂道的乙個分布式定理。有些人這麼理解cap定理 在分布式系統中,c代表一致性 a代表可用性,p代表網路分割槽。因為,分布式環境中,p不不可避免的,分布式系統要麼選擇一致性放棄可用性,要麼選擇可用性放棄一致性。另外,很多人也這樣乙個認識 paxos...