zookeeper 提供了命令行模式下的客户端连接以及 java 与 C 两种语言的客户端。
zkCli.sh -server 127.0.0.1:2181
zkCli.sh -server 127.0.0.1:21811,127.0.0.1:21812,127.0.0.1:21813
查看压缩包 /zythum/zk-api/
个人开源项目,是对于原生的封装。相对于原生特色有:
基本操作
查看压缩包 /zythum/zk-client/
curator 是连接 ZK 应用最广泛的工具
原因如下:
apache 旗下开源项目。封装功能更多,更完善。相对于原生特色有:
基本操作
查看压缩包 /zythum/zk-curator/
有这样一种场景,有多个请求,如果网络出现阻塞,每1分钟重试一次。
那么前面的请求就没有意义了,所以就有了退避算法,按照指数间隔重试,比如第一次1分钟,第二次2分钟......随着时间的推移,重试间隔越长。
org.apache.zookeeper.server.SessionTrackerImpl.initializeNextSession(long)
public static long initializeNextSession(long id) {
long nextSid = 0;
nextSid = (System.currentTimeMillis() << 24) >>> 8;
nextSid = nextSid | (id <<56);
return nextSid;
}
说明:
SessionID 的分配(初始化)函数,策略如下:
按照Session会话过期时间进行分区块保存。这样设计的好处:可以快速清理过期的session

