一、前言
前面分析了Zookeeper客戶(hù)端的細(xì)節(jié),接著繼續(xù)學(xué)習(xí)Zookeeper中的一個(gè)非常重要的概念:會(huì)話。
二、會(huì)話
客戶(hù)端與服務(wù)端之間任何交互操作都與會(huì)話息息相關(guān),如臨時(shí)節(jié)點(diǎn)的生命周期、客戶(hù)端請(qǐng)求的順序執(zhí)行、Watcher通知機(jī)制等。Zookeeper的連接與會(huì)話就是客戶(hù)端通過(guò)實(shí)例化Zookeeper對(duì)象來(lái)實(shí)現(xiàn)客戶(hù)端與服務(wù)端創(chuàng)建并保持TCP連接的過(guò)程.
2.1 會(huì)話狀態(tài)
在Zookeeper客戶(hù)端與服務(wù)端成功完成連接創(chuàng)建后,就創(chuàng)建了一個(gè)會(huì)話,Zookeeper會(huì)話在整個(gè)運(yùn)行期間的生命周期中,會(huì)在不同的會(huì)話狀態(tài)中之間進(jìn)行切換,這些狀態(tài)可以分為CONNECTING、CONNECTED、RECONNECTING、RECONNECTED、CLOSE等。
一旦客戶(hù)端開(kāi)始創(chuàng)建Zookeeper對(duì)象,那么客戶(hù)端狀態(tài)就會(huì)變成CONNECTING狀態(tài),同時(shí)客戶(hù)端開(kāi)始嘗試連接服務(wù)端,連接成功后,客戶(hù)端狀態(tài)變?yōu)镃ONNECTED,通常情況下,由于斷網(wǎng)或其他原因,客戶(hù)端與服務(wù)端之間會(huì)出現(xiàn)斷開(kāi)情況,一旦碰到這種情況,Zookeeper客戶(hù)端會(huì)自動(dòng)進(jìn)行重連服務(wù),同時(shí)客戶(hù)端狀態(tài)再次變成CONNCTING,直到重新連上服務(wù)端后,狀態(tài)又變?yōu)镃ONNECTED,在通常情況下,客戶(hù)端的狀態(tài)總是介于CONNECTING和CONNECTED之間。但是,如果出現(xiàn)諸如會(huì)話超時(shí)、權(quán)限檢查或是客戶(hù)端主動(dòng)退出程序等情況,客戶(hù)端的狀態(tài)就會(huì)直接變更為CLOSE狀態(tài)。
2.2 會(huì)話創(chuàng)建
Session是Zookeeper中的會(huì)話實(shí)體,代表了一個(gè)客戶(hù)端會(huì)話,其包含了如下四個(gè)屬性
1. sessionID。會(huì)話ID,唯一標(biāo)識(shí)一個(gè)會(huì)話,每次客戶(hù)端創(chuàng)建新的會(huì)話時(shí),Zookeeper都會(huì)為其分配一個(gè)全局唯一的sessionID。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26