广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Zookeeper bug的排查方法
  • 401
分享到

Zookeeper bug的排查方法

2024-04-02 19:04:59 401人浏览 泡泡鱼
摘要

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

本篇内容主要讲解“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的排查方法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Zookeeper bug的排查方法

本文链接: https://www.lsjlt.com/news/83290.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Zookeeper bug的排查方法
    本篇内容主要讲解“Zookeeper bug的排查方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Zookeeper bug的排查方法”吧!起因某一天突然有同...
    99+
    2022-10-19
  • 涉及到linux内核的bug排查过程是怎样的
    这期内容当中小编将会给大家带来有关涉及到linux内核的bug排查过程是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。编写代码只是程序员的工作之一,调试代码的时间甚至会超过编写代码,之前为大家讲解了...
    99+
    2023-06-15
  • win10干净启动排查的方法
    这篇文章主要介绍“win10干净启动排查的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10干净启动排查的方法”文章能帮助大家解决问题。win10干净启动排查步骤XP系统:步骤 1:启动系...
    99+
    2023-07-01
  • javascript未知错误的排查方法
    小编给大家分享一下javascript未知错误的排查方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-19
  • kubernetesk8s常用问题排查方法
    目录Pod 的那些状态镜像拉取失败启动后容器崩溃容器被驱逐总结Pod 的那些状态 使用 K8s 部署我们的服务之后,为了观察 Pod 是否成功,我们都会使用下面这个命令查询 Pod ...
    99+
    2022-11-13
  • docker zookeeper集群搭建的方法
    本篇内容主要讲解“docker zookeeper集群搭建的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker zookeeper集群搭建的方法”吧!准备工具一、安装docker 二...
    99+
    2023-06-19
  • Zookeeper扩展的方法是什么
    这篇文章主要介绍“Zookeeper扩展的方法是什么”,在日常操作中,相信很多人在Zookeeper扩展的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Zookeeper扩展的方法是什么”的疑惑有所...
    99+
    2023-06-05
  • MySQL故障排查的方法是什么
    MySQL故障排查方法主要包括以下几个步骤:1. 确认故障现象:通过观察数据库的表现和错误日志来判断故障的具体表现,比如错误代码、错...
    99+
    2023-10-20
    MySQL
  • tomcat崩溃排查的方法是什么
    排查Tomcat崩溃的方法包括以下几个步骤:1. 查看日志文件:首先,查看Tomcat的日志文件,通常位于Tomcat安装目录下的l...
    99+
    2023-09-16
    tomcat
  • Elasticsearch聚合查询及排序的方法
    这篇“Elasticsearch聚合查询及排序的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Elasticsearch...
    99+
    2023-06-30
  • MySQL中数据丢失排查的方法
    这篇文章主要介绍了MySQL中数据丢失排查的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。现场排查一开始听到这个消息,我心里面当然也是非常紧张,不过很快就让自己冷静下来,...
    99+
    2023-06-14
  • mybatis中orderBy(排序字段)和sort(排序方式)引起的bug及解决
    目录引言问题叙述下面尝试采用第二种方式第三种方式3.1 首先是什么都不传3.2 传入排序字段oderBy引言 记录一个mybatis实现动态字段的排序和动态的升降序问题 实现效果如下...
    99+
    2022-11-13
  • CSS网页布局排查错误的方法
    本篇内容主要讲解“CSS网页布局排查错误的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS网页布局排查错误的方法”吧!CSS网页布局排查错误的方法虽然浏...
    99+
    2022-10-19
  • Node.js 子线程Crash 问题的排查方法
    前言:昨天碰到了一个 worker_threads crash 的问题,最终经过阅读源码和调试找到了具体原因。不得不说,阅读源码是解决问题的非常有效的方法。 代码例子如下。 inde...
    99+
    2022-11-13
  • 网站访问慢的排查方法及解决方案
    这篇文章将为大家详细讲解有关网站访问慢的排查方法及解决方案,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。当出现网站慢的时候我们脑子中要映出几点原因: 1.程序代码执行方面2.大量数...
    99+
    2023-06-12
  • IE6 BUG的解决方法有哪些
    这篇“IE6 BUG的解决方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“IE6 ...
    99+
    2022-10-19
  • kafka数据积压排查的方法是什么
    要排查Kafka数据积压的情况,可以使用以下方法:1. 监控Kafka的指标:通过监控Kafka的指标,如消息堆积数量、消息处理速度...
    99+
    2023-09-14
    kafka
  • java内存溢出排查的方法是什么
    排查Java内存溢出问题的一般方法如下:1. 定位溢出位置:首先需要确定内存溢出的位置,可以通过查看错误日志或者使用内存分析工具来定...
    99+
    2023-10-10
    java
  • Dubbo线程池事故排查的方法步骤
    这篇文章主要介绍“Dubbo线程池事故排查的方法步骤”,在日常操作中,相信很多人在Dubbo线程池事故排查的方法步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Dubbo线...
    99+
    2022-10-19
  • 浅谈Redis变慢的原因及排查方法
    目录原因1:实例内存达到上限原因2:开启内存大页原因3:使用Swap原因4:网络带宽过载 原因5:其他原因原因1:实例内存达到上限 排查思路 如果你的 Redis 实例设置...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作