zookeeper的“坑”

zookeeper常常在微服務(wù)系統(tǒng)中扮演核心的角色,我們?cè)谑褂脄ookeeper時(shí)也遇到了一些容易犯的坑。比如某個(gè)時(shí)間突然發(fā)現(xiàn)rpc server流量沒(méi)了,上去服務(wù)看了下zk連接還在,進(jìn)一步發(fā)現(xiàn)臨時(shí)節(jié)點(diǎn)沒(méi)了...跟了下rpc server的日志看到,見(jiàn)截圖:

參考下代碼注釋:
`
const (
StateUnknown State = -1
StateDisconnected State = 0
StateConnecting State = 1
StateAuthFailed State = 4
StateConnectedReadOnly State = 5
StateSaslAuthenticated State = 6
StateExpired State = -112

StateConnected  = State(100)
StateHasSession = State(101)

)

const (
FlagEphemeral = 1
FlagSequence = 2
)
`
可以看到,client斷開(kāi)連接后重連,session過(guò)期后也重新創(chuàng)建了。但是,server創(chuàng)建的臨時(shí)節(jié)點(diǎn)消失了。原來(lái),zookeeper的臨時(shí)節(jié)點(diǎn)、watcher等都是和session綁定的!而一旦session過(guò)期,zookeeper server就會(huì)清除和session有關(guān)的這些狀態(tài)和數(shù)據(jù)。client要做的就是重建連接,重新創(chuàng)建臨時(shí)節(jié)點(diǎn),重新watch。另外watch本身也有要注意的,收到事件通知后,需要重新注冊(cè)watcher。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,602評(píng)論 19 139
  • 一、ZooKeeper的背景 1.1 認(rèn)識(shí)ZooKeeper ZooKeeper---譯名為“動(dòng)物園管理員”。動(dòng)物...
    algernoon閱讀 9,352評(píng)論 1 106
  • ZooKeeper是Hadoop Ecosystem中非常重要的組件,它的主要功能是為分布式系統(tǒng)提供一致性協(xié)調(diào)(C...
    把愛(ài)放下會(huì)走更遠(yuǎn)閱讀 22,094評(píng)論 1 18
  • ZooKeeper是一個(gè)分布式的,開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),它包含一個(gè)簡(jiǎn)單的原語(yǔ)集,分布式應(yīng)用程序可以基于...
    rthsfjhtrj閱讀 609評(píng)論 0 1
  • 下午翹班了。就是不想去。 聽(tīng)著音樂(lè),捏著手機(jī),卻沒(méi)有消息進(jìn)來(lái)。我以為我不在意,我以為我可以一笑而過(guò),可是事實(shí)是,我...
    山水白雲(yún)間閱讀 365評(píng)論 0 0

友情鏈接更多精彩內(nèi)容