RocketMQ版本:3.4.6

==问题现象==

RocketMQ集群的某个topic,在一部分节点上消费有“断层”,这部分数据一致没办法消费。

==调查过程==

一顿操作猛如虎的调查之后发现,

该Topic的消费者的客户端连接数不正确。

程序中设置的客户端数明明是4个,

但是Web页面上显示的是5个。

OK,如何才能知道这些客户端程序到底是哪些呢?

看了一下RocketMQ的命令列表,发现里面有一个命令好像有戏。

用这个命令尝试了一下,果然有效。

命令:sh /home/hadmin/alibaba-rocketmq/bin/mqadmin consumerConnection -n "10.11.2.4:9876;10.11.2.5:9876" -g face2

用这个命令可以查看出,这个消费组的客户端是在哪个节点上,占用的端口号是哪个。

将正常的客户端连接断开(用的Storm消费,把Storm的拓扑kill掉就可以了)

再次使用这个命令,就可以查看出,到底是哪个程序在捣鬼了。

发现在10.11.2.9节点上,54681这个端口的java程序启动了一个客户端连接。

到10.11.2.9上查看一下是哪个程序。

命令:netstat -anp | grep 54681  查看占用端口的java进程号是43021。

命令:ps -ef | grep 43021  查看启动这个进程的java程序。

==问题结论==

我们的场景是用Storm来消费RocketMQ。

但是,在我们kill拓扑的时候,由于storm的原因,

偶尔会有一些worker不能被kill掉,变成“僵尸进程”

上述问题中,莫名其妙多出的1个客户端连接就是僵尸进程引起的,

将上述发现的僵尸进程kill掉之后,问题就解决了。

==经验教训==

Storm的拓扑kill之后,建议检查是否有僵尸进程存在。可以写一个shell脚本检查。

RocketMQ的客户端连接数调查的更多相关文章

  1. "Redis客户端连接数一直降不下来"的有关问题解决

    [线上问题] "Redis客户端连接数一直降不下来"的问题解决 前段时间,上线了新的 Redis缓存(Cache)服务,准备替换掉 Memcached. 为什么要将 Memcach ...

  2. RocketMQ Java 客户端实现

    本章介绍使用 Java 实现RocketMQ 的客户端. 以及各种消息的方式的实现. 本章实现了以下几种消息的实现方式: 一:普通消息 普通的消息分为三种: 1> 可靠的同步消息 可靠的同步传输 ...

  3. "Redis客户端连接数一直降不下来"的有关问题解决 good

    [线上问题] "Redis客户端连接数一直降不下来"的问题解决 前段时间,上线了新的 Redis缓存(Cache)服务,准备替换掉 Memcached. 为什么要将 Memcach ...

  4. RocketMQ Py客户端

    #!/bin/bash yum install make cmake gcc-c++ python-devel zlib-devel cd /home/amy git clone https://gi ...

  5. mysql server查询客户端连接数

    SELECT substring_index(HOST, ) AS host_name, state, count(*) FROM information_schema. PROCESSLIST GR ...

  6. DataSnap Demo:TFDConnection、最大连接数、客户端回叫功能、多线程模拟、压力测试等

    一.限制最大连接数,并验证来访者用户身份: procedure TServerContainer1.DSServer1Connect( DSConnectEventObject: TDSConnect ...

  7. RocketMQ吐血总结

    RocketMQ吐血总结 架构 概念模型 最基本的概念模型与扩展后段概念模型 存储模型 RocketMQ吐血总结 User Guide RocketMQ是一款分布式消息中间件,最初是由阿里巴巴消息中间 ...

  8. 消息队列的一些场景及源码分析,RocketMQ使用相关问题及性能优化

    前文目录链接参考: 消息队列的一些场景及源码分析,RocketMQ使用相关问题及性能优化 https://www.cnblogs.com/yizhiamumu/p/16694126.html 消息队列 ...

  9. 分布式开放消息系统(RocketMQ)的原理与实践

    分布式消息系统作为实现分布式系统可扩展.可伸缩性的关键组件,需要具有高吞吐量.高可用等特点.而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一 ...

随机推荐

  1. 查看虚拟机CENTOS7 的 IP 地址和命令

    用于生产环境下  安装CENTOS7 太费时间, 研究阶段 放在虚拟机里面  是最好的选择: 但是安装完毕后 就出现问题    无法使用IFCONFIG : 毕竟 内核不一样 首先我们登录操作系统 用 ...

  2. snmp简单识记

    免费snmp探测 http://webluker.com/webtools/snmp snmp简单网络管理协议(simple network management protocol)前身时sgmp简单 ...

  3. Mybatis like模糊查询的写法

    转自:http://blog.51cto.com/lavasoft/1386870 Mybatis like查询官方文档没有明确的例子可循,网上搜索了很多,都不正确. Mybatis 3.2.6经过尝 ...

  4. Sender 转换TButtonItem TCategoryButtons

    http://codeverge.com/embarcadero.cppbuilder.using/using-sender-to-determine-which/1068317 http://qc. ...

  5. 安装设置IIS5.1

    1.防止不停提示无法复制staxmem.dll: esentutl /p %windir%/security/database/secedit.sdb提示数据库损坏,是否恢复,选是,出现以下提示后退出 ...

  6. Spring MVC 数据绑定流程

    DataBinder 数据绑定 入参,校验,格式化, ConversionService: 进行数据类型转换和数据格式化 Validators 进行数据合法性的校验, 把结果放入BindingResu ...

  7. display_css

    display所有可选值: none block inline inline-block inherit initial unset compact & marker list-item ru ...

  8. 快速预热Buffer_Pool缓冲池

    在之前的版本里,如果一台高负荷的机器重启后,内存中大量的热数据被清空,此时就会重新从磁盘加载到Buffer_Pool缓冲池里,这样当高峰期间,性能就会变得很差,连接数就会很高. 在MySQL5.6里, ...

  9. Implementing the On Item Checked Event for the TListView Control

    The TListView Delphi control displays a list of items in a fashion similar to how Windows Explorer d ...

  10. Windows10系统一键结束所有运行程序

    当电脑及其卡顿的时候,想打开任务管理器关掉所有运行的程序的时候,也会变得及其困难.因此之前你如果有犀利的小程序设置,这都不会是问题. 1)空白处右键-新建-快捷方式 2)将下列代码复制到下列框中(注意 ...