关于ZXID
前面一直提到zxid,也就是事務(wù)id,那么這個id具體起什么作用,以及這個id是如何生成的,簡單給大家解釋下
為了保證事務(wù)的順序一致性,zookeeper采用了遞增的事務(wù)id號(zxid)來標(biāo)識事務(wù)。所有的提議(proposal)都在被提出的時候加上了zxid。實現(xiàn)中zxid是一個64位的數(shù)字,它高32位是epoch(ZAB協(xié)議通過epoch編號來區(qū)分Leader周期變化的策略)用來標(biāo)識leader關(guān)系是否改變,每次一個leader被選出來,它都會有一個新的epoch=(原來的epoch+1),標(biāo)識當(dāng)前屬于那個leader的統(tǒng)治時期。低32位用于遞增計數(shù)。
epoch:可以理解為當(dāng)前集群所處的年代或者周期,每個?leader?就像皇帝,都有自己的年號,所以每次改朝換代,leader?變更之后,都會在前一個年代的基礎(chǔ)上加?1。這樣就算舊的?leader?崩潰恢復(fù)之后,也沒有人聽他的了,因為?follower?只聽從當(dāng)前年代的?leader?的命令。
?
超強干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
- 上一篇: 被丢弃的消息不能再次出现
- 下一篇: Zookeeper的来源