zk的每一个事务都会有一个唯一的事务id,这个id是一个64位的整数。前32位是逻辑时钟号,后32位是某个逻辑时钟下的单调递增的id,我的疑问是如果在一个任期内(前32位不变),后面的32位用尽了那么整个集群会怎么办?是重新选leader?还是leader不变然后将前32位加1后32位从0开始自增?如果前32位都用尽了又该怎么办?
zk的每一个事务都会有一个唯一的事务id,这个id是一个64位的整数。前32位是逻辑时钟号,后32位是某个逻辑时钟下的单调递增的id,我的疑问是如果在一个任期内(前32位不变),后面的32位用尽了那么整个集群会怎么办?是重新选leader?还是leader不变然后将前32位加1后32位从0开始自增?如果前32位都用尽了又该怎么办?
int 溢出了你说会发生啥?从 0 开始了呗……
然后会触发
XidRolloverException
异常,重新选举。P.S. 相关源码