1. 程式人生 > >讀《分布式一致性原理》會話

讀《分布式一致性原理》會話

服務 自動 分享圖片 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選舉投票。

讀《分布式一致性原理》會話