首頁技術(shù)文章正文

Watch機(jī)制的通知狀態(tài)和事件類型

更新時間:2021-03-11 來源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif


同一個事件類型在不同的連接狀態(tài)中代表的含義有所不同,下表列舉了常見的連接狀態(tài)和事件類型,如表1所示。

表1 Zookeeper連接狀態(tài)和事件類型


連接狀態(tài)狀態(tài)含義事件類型事件含義
Disconnected           連接失敗        NodeCreated                     節(jié)點(diǎn)被創(chuàng)建              
SyncConnected                 連接成功NodeDataChanged    節(jié)點(diǎn)數(shù)據(jù)變更
AuthFailed認(rèn)證失敗NodeChildrentChanged子節(jié)點(diǎn)數(shù)據(jù)變更
Expired會話過期NodeDeleted節(jié)點(diǎn)被刪除

從表1可知,Zookeeper常見的連接狀態(tài)和事件類型分別有4種,具體含義如下。

當(dāng)客戶端斷開連接,這時客戶端和服務(wù)器的連接就是Disconnected狀態(tài),說明連接失敗;當(dāng)客戶端和服務(wù)器的某一個節(jié)點(diǎn)建立連接,并完成一次version、zxid的同步,這時客戶端和服務(wù)器的連接狀態(tài)就是SyncConnected,說明連接成功;當(dāng)Zookeeper客戶端連接認(rèn)證失敗,這時客戶端和服務(wù)器的連接狀態(tài)就是AuthFailed,說明認(rèn)證失敗;當(dāng)客戶端發(fā)送Request請求,通知服務(wù)器其上一個發(fā)送心跳的時間,服務(wù)器收到這個請求后,通知客戶端下一個發(fā)送心跳的時間是哪個時間點(diǎn)。當(dāng)客戶端時間戳達(dá)到最后一個發(fā)送心跳的時間,而沒有收到服務(wù)器發(fā)來的新發(fā)送心跳的時間,即認(rèn)為自己下線,這時客戶端和服務(wù)器的連接狀態(tài)就是Expired狀態(tài),說明會話過期。

當(dāng)節(jié)點(diǎn)被創(chuàng)建時,NodeCreated事件被觸發(fā);當(dāng)節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變更時,NodeDataChanged事件被觸發(fā);當(dāng)節(jié)點(diǎn)的直接子節(jié)點(diǎn)被創(chuàng)建、被刪除、子節(jié)點(diǎn)數(shù)據(jù)發(fā)生變更時,NodeChildrentChanged事件被觸發(fā);當(dāng)節(jié)點(diǎn)被刪除時,NodeDeleted事件被觸發(fā)。







猜你喜歡:

Hadoop生態(tài)體系有哪些子系統(tǒng)?

采集數(shù)據(jù)為什么選擇kafka?

Watch機(jī)制特點(diǎn)有哪些?Watch簡介

黑馬程序員大數(shù)據(jù)開發(fā)培訓(xùn)

分享到:
在線咨詢 我要報名
和我們在線交談!