RocketMQ的客户端连接数调查
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的客户端连接数调查的更多相关文章
- "Redis客户端连接数一直降不下来"的有关问题解决
[线上问题] "Redis客户端连接数一直降不下来"的问题解决 前段时间,上线了新的 Redis缓存(Cache)服务,准备替换掉 Memcached. 为什么要将 Memcach ...
- RocketMQ Java 客户端实现
本章介绍使用 Java 实现RocketMQ 的客户端. 以及各种消息的方式的实现. 本章实现了以下几种消息的实现方式: 一:普通消息 普通的消息分为三种: 1> 可靠的同步消息 可靠的同步传输 ...
- "Redis客户端连接数一直降不下来"的有关问题解决 good
[线上问题] "Redis客户端连接数一直降不下来"的问题解决 前段时间,上线了新的 Redis缓存(Cache)服务,准备替换掉 Memcached. 为什么要将 Memcach ...
- RocketMQ Py客户端
#!/bin/bash yum install make cmake gcc-c++ python-devel zlib-devel cd /home/amy git clone https://gi ...
- mysql server查询客户端连接数
SELECT substring_index(HOST, ) AS host_name, state, count(*) FROM information_schema. PROCESSLIST GR ...
- DataSnap Demo:TFDConnection、最大连接数、客户端回叫功能、多线程模拟、压力测试等
一.限制最大连接数,并验证来访者用户身份: procedure TServerContainer1.DSServer1Connect( DSConnectEventObject: TDSConnect ...
- RocketMQ吐血总结
RocketMQ吐血总结 架构 概念模型 最基本的概念模型与扩展后段概念模型 存储模型 RocketMQ吐血总结 User Guide RocketMQ是一款分布式消息中间件,最初是由阿里巴巴消息中间 ...
- 消息队列的一些场景及源码分析,RocketMQ使用相关问题及性能优化
前文目录链接参考: 消息队列的一些场景及源码分析,RocketMQ使用相关问题及性能优化 https://www.cnblogs.com/yizhiamumu/p/16694126.html 消息队列 ...
- 分布式开放消息系统(RocketMQ)的原理与实践
分布式消息系统作为实现分布式系统可扩展.可伸缩性的关键组件,需要具有高吞吐量.高可用等特点.而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一 ...
随机推荐
- zabbix微信报警
[root@LinuxS04 jiaoben]# ./weixin 联系人 baojing baojingok[root@LinuxS04 jiaoben]# pwd/usr/local/zabbix ...
- JAVA时间进行比较和转换,时间加减得到天数
转自:https://blog.csdn.net/iteye_8535/article/details/82246006 JAVA时间进行比较和转换,时间加减得到天数 1. 把时间类型的字符串转为DA ...
- Socket Error # 10013 Access denied
--------------------------- Debugger Exception Notification --------------------------- Project xxx. ...
- div 标签
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- web 复制功能和span光标
参考文章:https://www.cnblogs.com/tugenhua0707/p/7395966.html https://blog.csdn.net/woshinia/article/deta ...
- Asp.net MVC重要
1.asp.net mvc百度解释 2.asp.net mvc各版本特点 3.asp.net mvc知多少 4.asp.net mvc4入门到精通系列目录汇总(邹琼俊)[重要] 5.新年奉献MVC+E ...
- Haskell语言学习笔记(36)Data.List.Zipper
ListZipper 模块 $ cabal install ListZipper Installed ListZipper-1.2.0.2 Prelude> :m +Data.List.Zipp ...
- CSS3 弹性盒模型 box-flex
说明:本文档兼容性测试基础环境为:windows系统:IE6-IE10, Firefox6.0, Chrome13.0, Safari5.1, Opera11.51 语法: box-flex:< ...
- js indexOf within Switch
https://stackoverflow.com/questions/22277447/indexof-within-switch switch (true) { case (msgRes.inde ...
- 配置MySQL 5.6的主从复制
工具/原料 Windows 7 64位 MySQL 5.6 配置新数据库的主从复制 1 先在主数据库中创建新数据库rep_test. 然后编辑主数据库的my.ini文件 在[mysqld]节点 ...