讀《分布式一致性原理》會話
阿新 • • 發佈:2018-06-02
服務 自動 分享圖片 reconnect 主動 介紹 獨立 集群 處理
會話狀態
在zookeeper客戶端與服務端成功完成連接創建後,就建立了一個會話。zookeeper會在整個運行期間的生命周期中,會在不同
的會話狀態間進行切換,這些狀態一般,這些狀態一般可以分為CONNECTING,CONNECTED,RECONNECTING,RECONNECTED
和CLOSED。
一旦客戶端開始創建Zookeeper對象,那麽客戶端狀態就會變成CONNECTING,同時客戶端開始從上述服務器地址列表中捉個選取IP
進行網絡連接,直到成功連接上服務器然後將客戶端狀態變更為CONNECTED。
通常情況下伴隨著網絡閃斷或是其他原因,客戶端與服務器之間的連接會出現斷開情況。一旦碰到這種情況,zookeeper客戶端會自動進行
重連操作。同時客戶端的狀態會變成CONNECTING。直到重新連接上服務端後,狀態變為CONNECTED。
另外如果出現會話超時,權限檢查失敗或則客戶端主動退出程序等情況,那麽客戶端的狀態會變為CLOSED
。
會話創建
Session是zookeeper中的會話實體,代表了一個客戶端會話,包括以下4個屬性。
服務器的角色介紹
Leader
Leader服務器是整個zookeeper集群工作機制的核心,其主要工作有以下兩個
- 事務請求的唯一調度和處理這,保證集群事務處理的順序性。
- 集群內部各服務器的調度者
Follower
Follower服務器時zookeeper集群狀態的跟隨者,其主要工作有一下三個。
- 處理客戶端非事務請求,轉發事務請求給Leader服務器。
- 參與事務請求Proosal的投票
- 參與Leader選舉投票
Oberver
Oberver是zookeeper引入的全新的服務器角色。observer服務器在工作原理上和Follower基本是一致的。
對非事務請求,都可以進行獨立的處理,對於事務請求則會轉發給leader服務器。
和follower的區別是不參與投票,包括事務請求Proposal的投票和Leader選舉投票。
讀《分布式一致性原理》會話