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进制字符串。
ConfigUtils:(配置工具集):
, value),最终打印版本号以及相对应客户端的IP和PORT。
KerberosUtil:(Kerberos是一种网络验证协议,安全网络认证系统,kerberos讲解可参考http://www.360doc.com/content/15/0803/10/13047933_489182493.shtml)
通过反射机制的class.forName\getMethod\getDeclaredMethod\invoke调用相关class文件中的getDefaultRealm函数(获取默认域),
相关的class文件依赖于读取系统属性java.verdor加载com.ibm.security.krb5.internal.Config或者是sun.security.krb5.Config。
OSMXBean.java:(操作系统的MXBean工具,该类是com.sun.management.UnixOperatingSystemMXBean的包装类,用于决定使用sun api或者厂商自定义的实现类如IBM),
对外接口提供getOpenFileDescriptorCount(获取当前文件打开数)和getMaxFileDescriptorCount(获取最大文件描述符),
判断如果是UNIX系统则使用反射机制调用com.sun.management.UnixOperatingSystemMXBean获取类当中对应的实现函数,
] +"/fdinfo | wc -l"
或者"ulimit -n",其中RuntimeMXBean rtmbean = ManagementFactory.getRuntimeMXBean(),用于获取运行期的MXBean(可了解MBean和MXBean之间的区别,
二者都是JMX中一种可以被管理的资源)。
(未完待续......)