1. 程式人生 > >zookeeper源碼分析-server-util

zookeeper源碼分析-server-util

utils getc san 關系 數字 工具集 ati 宋體 移位

zxid (ZooKeeper Transaction Id,每次請求對應一個唯一的zxid,如果zxid a < zxid b ,則可以保證a一定發生在b之前)

zookeeper采用了遞增的事務id號(zxid)來標識事務。所有的提議(proposal)都在被提出的時候加上了zxid。

實現中zxid是一個64位的數字,它高32位是epoch用來標識leader關系是否改變,每次一個leader被選出來,它都會有一個新的epoch,標識當前屬於那個leader的統治時期。低32位用於遞增計數。

ZXID高32位代表epoch(表示紀元或時代),低32位表示counter(表示遞增計數)

ZxidUtils.java:(ZXID工具集)

getEpochFromZxid獲取epoch,getCounterFromZxid獲取遞增計數,makeZxid通過epoch和counter進行移位組合,zxidToString把zxid轉換成16進制字符串。


zookeeper源碼分析-server-util