文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Zookeeper bug的排查方法

2024-04-02 19:55

关注

本篇内容主要讲解“Zookeeper bug的排查方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Zookeeper bug的排查方法”吧!

起因

某一天突然有同事说zk client连不上server,考虑到最近业务代码没有变更,怀疑是运维同学做了什么操作导致,急忙联系运维同学,确实最近做了变更。为了避免扩大影响范围,先让运维同学回滚了变更,回滚后可以正常访问了。

复现问题

询问运维同学后,得到变更流程:由于zk集群有一台服务器存在性能隐患,需要变更到新的一个实例。于是运维先将新机器加入zk集群,修改旧服务器上配置逐个重启,重启后新zk的角色是leader,此时zk状态正常,运维同学也就认为变更完成。

结果意想不到的是使用mntr命令查看,所有的机器状态都是正常,但是zk client无法访问,一访问就卡住,问题可以在测试环境稳定复现。

问题排查

1 猜测zk端口没有监听成功,登录服务器使用netstat查看server打开的三个端口都是正常状态,也使用了telnet测试可以连上。

2 猜测同步节点数不足一半,或者follower连不上leader触发重新选举,但很快就被排除,因为上面说了使用mntr命令查看节点状态都正常,从日志中也未能找到对应日志记录。

3 我们再使用stat来观察server的连接情况,运行zk client发现server收到了client的请求,但是没有回消息,看来原因就是zk server没处理client的请求了。

跟踪到这里,就应该进入源码了,由于对zk源码不熟悉,咨询了某位大佬,建议我们看zk请求处理类CommitProcessor。

在CommitProcessor我们发现了原因,代码如下:

<code>@Override public void start() {     ...     if (workerPool == null) {         workerPool = new WorkerService("CommitProcWork", numWorkerThreads, true);     }     ... }  public void shutdown() {     LOG.info("Shutting down");      halt();      if (workerPool != null) {         workerPool.join(workerShutdownTimeoutMS);     }      if (nextProcessor != null) {         nextProcessor.shutdown();     } } </code><button>复制</button>

在shutdown中调用了 workerPool.join实际上已经将请求处理的开关关闭了,但是并没有将workerPool设置为null。在start方法中会根据workerPool==null来创建WorkerService并开始处理请求。

修改后重新验证解决。

到此,相信大家对“Zookeeper bug的排查方法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯