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 保持不變