日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Zookeeper运维问题集锦

發布時間:2024/4/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Zookeeper运维问题集锦 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 實際工作中用到Zookeeper集群的地方很多, 也碰到過各種各樣的問題, 在這里作個收集整理, 后續會一直補充;
  • 其中很多問題的原因, 解決方案都是google而來, 這里只是作次搬運工;
  • 其實很多問題都跟配置有關, 只怪自己沒好好讀文檔;
  • 問題列表:
    1. 一臺 zk 節點重啟后始終無法加入到集群中, 無法對外提供服務
    2. zk的log和snapshot占用大量空間
    3. 某臺客戶端上有的進程可以連接到zk, 有的無法連接
    4. 一臺zk服務器無法對外提供服務,報錯"Have smaller server identifier, so dropping
    the connection."

    5. zk客戶端偶爾無法成功連接到zk server

一臺 zk 節點重啟后始終無法加入到集群中, 無法對外提供服務
  • 現象: 使用zkCli.sh無法連接成功該zk節點
  • 日志: 首先想到的是將該節點restart, 但問題依舊, 故查看zk的log, 有大量的如下日志
2017-07-18 17:31:12,015 - INFO [WorkerReceiver Thread:FastLeaderElection@496] - Notification: 1 (n.leader), 77309411648 (n.zxid), 1 (n.round), LOOKING (n.state), 1 (n.sid), LOOKING (my state) 2017-07-18 17:31:12,016 - INFO [WorkerReceiver Thread:FastLeaderElection@496] - Notification: 3 (n.leader), 73014444480 (n.zxid), 831 (n.round), LEADING (n.state), 3 (n.sid), LOOKING (my state) 2017-07-18 17:31:12,017 - INFO [WorkerReceiver Thread:FastLeaderElection@496] - Notification: 3 (n.leader), 77309411648 (n.zxid), 832 (n.round), FOLLOWING (n.state), 2 (n.sid), LOOKING (my state) 2017-07-18 17:31:15,219 - INFO [QuorumPeer:/0.0.0.0:2181:FastLeaderElection@697] - Notification time out: 6400
  • 解決方案:
  • Zookeeper本身的Bug: FastLeaderElection - leader ignores the round information when joining a quorum
  • 重啟下當前的Leader, 產生新的Leader.
zk的log和snapshot占用大量空間
  • 現象: zk的datadir下的version-2下有大量的log和snapshot文件, 占用大量的磁盤空間
  • 解決: 在配置文件里打開周期性自動清理的開關 autopurge.purgeInterval=1, 當然也可以通過 autopurge.snapRetainCount來設置需要保留的snapshot文件個數,默認是3;
某臺客戶端上有的進程可以連接到zk, 有的無法連接
  • 現象: 同一臺客戶端機器上啟動多個相同的進程, 有些進程無法連接到zk集群
  • zk服務端日志:
Too many connections from /x.x.x.x - max is x
  • 解決: zk的配置中maxClientCnxns設置過小, 這個參數用來限制單個IP對zk集群的并發訪問;
一臺zk服務器無法對外提供服務,報錯"Have smaller server identifier, so dropping the connection."
  • 現象:使用zkCli.sh無法連接成功該zk節點;
  • 日志: 大量報錯:Have smaller server identifier, so dropping the connection.
  • 解決方案: 保持這臺有問題zk的現狀, 按myid從小到大依次重啟其他的zk機器;
  • 原因: zk是需要集群中所有機器兩兩建立連接的, 其中配置中的3555端口是用來進行選舉時機器直接建立通訊的端口, 大id的server才會去連接小id的server,避免連接浪費.如果是最后重啟myid最小的實例,該實例將不能加入到集群中, 因為不能和其他集群建立連接
zk客戶端偶爾無法成功連接到zk server
  • 現象: 同一臺機器來運行的zk客戶端, 偶發無法成功連接到zk server
  • 分析:
  • 當時提供給業務一份sdk, sdk初始化時需要先連接zk, 初始化結束后斷開zk的連接,業務將這份sdk用在了由fpm-php 處理的前端web請求的php代碼中, 該業務的QPS在6K-8K左右, 相當于zk在處理大量的短連接請求;
  • 在zk服務端監控下列命令的輸出, overflowed和droped的數值在不斷增加,說明 listen的accept queue有不斷被打滿的情況
[root@m1 ~]# netstat -s |grep -i listen53828 times the listen queue of a socket overflowed53828 SYNs to LISTEN sockets ignored
  • 解決:
  • 調整相關內核參數:/proc/sys/net/ipv4/tcp_max_syn_backlog和net.core.somaxconn
  • zk服務端listen時的backlog用的是默認值50, zk沒參數用來設置這個,有這個issue:Configurable listen socket backlog for the client port, 里面提供了patch;
  • 避免客戶端有大量短連接的方式連接zk服務;


作者:掃帚的影子
鏈接:https://www.jianshu.com/p/88ffb54fb43a
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。

轉載于:https://www.cnblogs.com/zhengchunyuan/p/10646554.html

總結

以上是生活随笔為你收集整理的Zookeeper运维问题集锦的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。