【通用行业开发部】记一次rocketMq的踩坑经历

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 遇到的极小众问题:阿里云RocketMq的死分区与假堆积

※技术组件:阿里云RocketMq
※业务场景:上游系统A将商家变更后数据,通过rocketMq消息通知我项目进行同步更改
※时间背景:项目上线后连续平稳运行一段时间的某天晚上
※异常发现:收到钉钉机器人的告警信息:topicxxx的消息堆积量已达xxx条。登录阿里云mq的控制台,显示topic状态异常,消息堆积状态。
※异常排查:
1、首先怀疑服务问题,紧急检查ECS服务器状态-->全部正常
2、检查mq消费者微服务所在pod状态-->全部正常
3、检查生产环境服务运行日志-->正常
4、搜索告警topic的近期消费日志-->正常
排查到这里其实就已经有点头大了,业务检查没有任何异常,mq的控制台又不能展示具体堆积的消息详情。
抓耳挠腮好一会儿之后,既然不能通过服务发现问题,就索性走一遍流程,看能不能复现问题。于是趁着夜深人静打开pod节点实时日志,然后通过mq的控制台手动发送了一条测试消息,结果!竟然!日志打印了! mq消费没问题!emm,这就TM的离谱,看着控制台上红色的消息堆积状态,我陷入了深深的沉思...
确认服务消费没问题就好办了,第二天直接提了个阿里云工单咨询,结果工单小哥也没遇见过这种问题,历经许久并且用掉了一次技术专家答疑,才最终得到了
原因:死分区与假堆积,通俗点说就是某个节点长时间没有消息生产和消费,rocketMq会不能准确的监测到这个节点的状态,进而给出虚假的消息堆积告警。
※问题修复:
1、根据业务场景和生产日志,梳理出可能存在长时间没有消息消费的节点
2、针对这些节点增加定时发送消息(心跳)的逻辑。
※总结:
1、还是有必要了解选用技术一些可能隐藏的坑,不至于遇到问题时候手忙脚乱
2、技术选型和技术方案还是要根据业务和功能来确定,像本案例其实是不适用mq的(应该设计之初是有mq的通道,不愿再增加一种新的交互方式)

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
6月前
|
消息中间件 监控 Kafka
不愧是Alibaba技术官,Kafka的精髓全写这本“限量笔记”里,服了
分布式,是程序员必备技能之一,在面试过程中属于必备类的,在工作中更是会经常用到。而Kafka是一个分布式的基于发布订阅的消息队列,目前它的魅力是无穷的,对于Kafka的奥秘,还需要我们细细去探寻。
|
5月前
|
消息中间件 Java Kafka
「布道师系列文章」众安保险王凯解析 Kafka 网络通信
本文由众安保险基础平台 Java 开发专家王凯解析 Kafka 网络通信流程,重点关注请求处理和网络通信模型。文中介绍了生产者与消费者与消息队列的交互,以及服务器端的处理步骤,包括 Acceptor、Processor 和 RequestHandler 的工作原理。此外,还讨论了 Kafka 的线程模型,特别是 KafkaApis 在请求处理中的核心作用。最后,文章提到了 AutoMQ 如何通过优化线程模型和 RequestChannel 实现更高效、有序的处理。参考链接包括 Kafka 3.7、Java NIO 教程和 AutoMQ 相关资料。
45 0
「布道师系列文章」众安保险王凯解析 Kafka 网络通信
|
6月前
|
运维 架构师 Java
T3架构师耗时4个月肝出一份PDF,带你立足实战落地微服务架构
目前微服务的现状是概念多于实践,管理和架构人员往往不知道如何落地微服务,《微服务架构实战》从软件工程的角度切入,融入了作者多年的管理及架构经验,内容完全基于实际经验所得,直击痛处。通过阅读本书,开发人员能够实现微服务的快速落地。
|
前端开发 JavaScript 小程序
新来个技术总监,给公司项目引入了全新的业务架构,堪称最佳实践!
新来个技术总监,给公司项目引入了全新的业务架构,堪称最佳实践!
|
消息中间件 存储 分布式计算
分享一份京东大数据大牛私藏:Kafka核心设计与实践原理
Kafka起初是由LinkedIn 公司采用Scala语言开发的一一个多分区、多副本且基于ZooKeeper协调的分布式消息系统,现已被捐献给Apache基金会。目前Kafka已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Storm、Spark、Flink等都支持与Kafka集成。
|
数据挖掘 大数据 Apache
行业实践专栏上线|互娱领域专家解读 Flink 企业应用实践
Flink-learning 学训平台第 3 期课程——互娱行业实践专栏上线啦!
487 0
|
机器学习/深度学习 缓存 SpringCloudAlibaba
假期做了一项调研:大厂为啥都自研RPC?结果合乎情理!
五一假期过的可真快,今天开始,又要搬砖了。在五一假期当中,冰河做了一项调研,感觉结果还是挺合乎情理的。
380 0
假期做了一项调研:大厂为啥都自研RPC?结果合乎情理!
|
存储 消息中间件 自然语言处理
Apache Rocket MQ 阿里云大规模商业化实践之路(二)| 学习笔记
快速学习 Apache Rocket MQ 阿里云大规模商业化实践之路。
Apache Rocket MQ 阿里云大规模商业化实践之路(二)| 学习笔记
|
消息中间件 Cloud Native 容灾
Apache Rocket MQ 阿里云大规模商业化实践之路(一)| 学习笔记
快速学习 Apache Rocket MQ 阿里云大规模商业化实践之路。
Apache Rocket MQ 阿里云大规模商业化实践之路(一)| 学习笔记
|
消息中间件 RocketMQ
《行业实践:RocketMQ 业务集成典型行业应用和实践》电子版地址
阿里云消息队列自商业化以来,服务了云上来自互联网、电商、金融、政企等众多行业数万家企业客户,积累了大量行业生产实践案例。本次分享将集中以行业应用案例为背景介绍RocketMQ在多行业的功能应用,并给出常见的误区和避坑分享,帮助企业客户更科学地使用消息队列进行业务架构解耦和集成。
106 0
《行业实践:RocketMQ 业务集成典型行业应用和实践》电子版地址
下一篇
无影云桌面