ZXID

特点

集群范围内,全局单调唯一递增;

数据构成

  ZXID是一个64位的数字,低32代表一个单调递增的计数器,高32位代表Leader周期。
这里写图片描述

ZXID变化

  • 当有新的Leader产生时,Leader周期epoch加1,计数器从0开始;
  • 每处理一个事务请求,计数器加1;
public class ZxidUtils {
    static public long getEpochFromZxid(long zxid) {
        return zxid >> 32L;
    }
    static public long getCounterFromZxid(long zxid) {
        return zxid & 0xffffffffL;
    }
    static public long makeZxid(long epoch, long counter) {
        return (epoch << 32L) | (counter & 0xffffffffL);
    }
    static public String zxidToString(long zxid) {
        return Long.toHexString(zxid);
    }
}

猜你喜欢

转载自blog.csdn.net/yangguosb/article/details/80254240