zookeeper 性能问题分析
一、服务启动时,zookeeper 信息
Initiating client connection, connectString=zk-svc:2181 sessionTimeout=60000 watcher=org.apache.curator.ConnectionState@508f2f3bjava
这里的sessionTimeout 是客户端链接zookeeper 服务端的时候,客户端设置 timeout 为 60000apache
默认是30000session
2 创建链接后的协商超时时间 negotiated timeout = 40000
2019-07-26 10:13:58,976 INFO (ClientCnxn.java:1299)- Session establishment complete on server zk-2.zk-svc.incloud.svc.cluster.local/10.233.88.154:2181, sessionid = 0x36c1354aabf0345, negotiated timeout = 40000socket
这个数出处是 /opt/zookeeper/conf/zoo.cfg 中的 maxSessionTimeout = 40000性能
zookeeper 默认 ticketTime 是3000,若是没有设置session最大最小时间的话,默认 session最大超时时间为 tickTime 的20倍测试
icm的zookeeper 容器中设置了心跳时间和session的最大最小值spa
则 negotiated timeout = 40000rest
3 zookeeper 日志中大量的ruok
2019-07-25 09:29:11,837 [myid:1] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@883] - Processing ruok command from /127.0.0.1:40006日志
2019-07-25 09:29:11,837 [myid:1] - INFO [Thread-70950:NIOServerCnxn@1044] - Closed socket connection for clientserver
ruok 这个命令是 测试服务是否处于正确状态。若是确实如此,那么服务返回 imok ,不然不作任何响应。
断开链接是由于没有客户端链接这个端口,检测不到sessonId,就会关闭
*正常的客户端链接服务端的时候,会自动注册sessionId
四、验证 server端强制关闭,再次启动的状况
client状况以下,自动重连
服务端状况
服务端中的 sessionId 保持不变