一、問題描述
服務(wù)與中間件都部署在容器內(nèi)况褪,中間件重起服務(wù)后連接不上,需要重啟中間件與服務(wù)更耻,才可以正常訪問测垛。
zk3個節(jié)點,myid最小的節(jié)點啟動后不能加加入集群秧均。
現(xiàn)像一
JMX enabled by default
Using config: /data/zookeeper-3.4.3/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
現(xiàn)象二
2019-11-19 09:23:48,014 [myid:1] - INFO? [QuorumPeer[myid=1]/0.0.0.0:2181:FastLeaderElection@764] - Notification time out: 400
2019-11-19 09:23:48,014 [myid:1] - INFO? [WorkerReceiver[myid=1]:FastLeaderElection@542] - Notification: 1 (n.leader), 0x0 (n.zxid), 0x6 (n.round), LOOKING (n.state), 1 (n.sid), 0x0 (n.peerEPoch), LOOKING (my state)
2019-11-19 09:23:48,016 [myid:1] - INFO? [WorkerReceiver[myid=1]:FastLeaderElection@542] - Notification: 3 (n.leader), 0x0 (n.zxid), 0x5 (n.round), LEADING (n.state), 3 (n.sid), 0x0 (n.peerEPoch), LOOKING (my state)
2019-11-19 09:23:48,016 [myid:1] - INFO? [WorkerReceiver[myid=1]:FastLeaderElection@542] - Notification: 2 (n.leader), 0x0 (n.zxid), 0x4 (n.round), LEADING (n.state), 2 (n.sid), 0x0 (n.peerEPoch), LOOKING (my state)
二食侮、復(fù)現(xiàn)步驟
1、掛掉NFS服務(wù)節(jié)點【未復(fù)現(xiàn)】
驗證結(jié)果:node上的zk熬北、redis疙描、服務(wù)可以正常恢復(fù)讶隐。
2起胰、stop hab服務(wù),kill zk進程巫延,重啟hab服務(wù)【已復(fù)現(xiàn)】
前置條件:hab在A節(jié)點
驗證結(jié)果:
1效五、A節(jié)點的zk服務(wù)啟動異常:Error contacting service. It is probably not running(myid正常),B炉峰、C節(jié)點的zk畏妖、redis、服務(wù)節(jié)點啟動正常疼阔。
2戒劫、日志大量報錯:Have smaller server identifier, so dropping the connection.
三、問題分析
1婆廊、根據(jù)復(fù)現(xiàn)獲得的異常日志迅细,經(jīng)排查是zookeeper低版本bug。
2淘邻、項目A zookeeper鏡像版本3.4.3,此問題官方修復(fù)版本在3.4.4和3.5.0(點擊查看詳見官方文檔)茵典。
四、解決方案
4.1 臨時解決方法
1宾舅、進入zookeeper部署的容器统阿,
2彩倚、刪除/data/zookeeper/data下所有內(nèi)容
3、kill所有節(jié)點 zookeeper進程扶平,讓zookeeper重新啟動帆离。
4.2 升級zookeeper版本
將zookeeper版本從3.4.3 升級到3.4.12驗證正常。
5 蜻直、結(jié)論
在容器環(huán)境下zookeeper版本必須>=3.4.4