RocketMQ 监控告警:生产环境如何快速通过监控预警发现堆积、收发失败等问题?

作者:合伯

本文主要向大家介绍如何利用 RocketMQ 可观测体系中的指标监控,对生产环境中典型场景:消息堆积、消息收发失败等场景配置合理的监控预警,快速发现问题,定位问题。

RocketMQ 可观测体系

作为一款典型的分布式中间件产品,RocketMQ 被广泛应用于业务核心链路中,每条消息都关联着核心业务数据的变化。业务链路有其明显的复杂性:

    • 生产者、消费者多对多:业务调用链路网状结构,上下游梳理困难
    • 上下游解耦、异步链路:异步化调用,信息收集不完整
    • 消息是状态数据:未消费成功、定时中等状态增加排查的复杂度
    • 消息链路耦合复杂的业务处理逻辑:无法快速定位问题边界

鉴于消息链路耦合业务系统,复杂带状态,RocketMQ 通过强大的可观测系统和经验支撑,及时发现问题、定位问题、解决问题有助于提升运维效率,对于业务运行是一项重要的保障能力。

在这里插入图片描述

RocketMQ 的可观测体系主要由指标(Metrics)、轨迹(Tracing)和日志(Logging)组成。

  • 指标

RocketMQ中定义了详细的Metrics指标,这些指标覆盖生产者、消费者、服务端及消息收发关键接口和流程的统计数据,并支持从实例、Topic和Group等多个维度进行聚合展示,帮助您实时监控消息业务或RocketMQ服务的运行状态。和4.x版本相比,RocketMQ服务端5.x版本增加了消息堆积场景相关指标、关键接口的耗时指标、错误分布指标、存储读写流量等指标,帮助您更好地监控异常场景。

  • 消息轨迹

在分布式应用中,RocketMQ作为全链路中异步解耦的关键服务,提供的Tracing数据可有效将业务上下游信息串联起来,帮助您更好地排查异常,定位问题。和4.x版本相比,RocketMQ服务端5.x版本支持OpenTelemetry开源标准,提供更加丰富的轨迹指标,针对消费场景、高级消息类型场景等细化轨迹内容,为问题定位提供更多关键信息。

  • 日志

RocketMQ为不同的异常情况定义唯一的错误码及错误信息,并划分不同的错误级别,您可以根据客户端返回的错误码信息快速获取异常原因。和4.x版本相比,RocketMQ服务端5.x版本统一了ErrorCode和ErrorMessage,异常日志中增加了RequestID、资源信息,细化了错误信息,保证日志内容明确靠。

RocketMQ 监控告警介绍

RocketMQ 联合阿里云云监控提供了开箱即用且免费的监控报警服务,可帮助您解决如下问题:

  • 实例规格水位监控预警

若您实际使用的指标值超过实例的规格限制,RocketMQ会进行强制限流。提前配置实例规格水位告警可以提前发现规格超限风险并及时升配,避免因限流导致的业务故障。

  • 业务逻辑错误监控预警

您在消息收发时可能会收到异常报错,配置调用错误告警可以提前在业务反馈前发现异常,帮助您提前判断异常来源并及时修复。

  • 业务性能指标监控预警

如果您的消息链路有相关性能指标要求,例如RT耗时、消息延迟等,提前配置业务指标告警可以帮助您提前治理业务风险。

RocketMQ 版提供了丰富的 Metric 指标和告警监控项。各监控项可分为运行水位、收发性能、异常错误事件三类告警。根据大量生产环境实践经验,建议您根据以下原则配置如下告警

在这里插入图片描述

接下来重点通过消息堆积和消息收发失败这两个典型场景来阐述基于可观测体系中的指标(Metrics),RocketMQ 如何通过云监控创建监控规则,将关键的 Metrics 指标作为告警项,帮助您自动监控服务的运行状态,并自动发送报警通知, 便于您及时预警服务的异常信息,提高运维效率。

应用场景1:消息堆积问题

消息堆积指标及监控配置

在这里插入图片描述

业界通用指标:使用消息堆积量(ready + inflight)来度量消费健康度,表示未处理完成的消息量;部分产品额外增加已就绪消息量来度量消息拉取的及时性;使用上述 2 个指标直接来配置报警有以下缺点:

  • 有误报或无法触发报警的问题

  • 及时性的间接指标,不直观

在这里插入图片描述

RocketMQ 指标:额外支持延时时间来度量消费健康度,涵盖了所有业务场景,根据业务容忍延迟度直接配置时间告警阈值。

  • 消息处理延迟时间:表示业务处理完成及时度

  • 已就绪消息排队时间:表示拉取消息及时度

建议对消息堆积敏感的用户,都在 RocketMQ 实例页的监控报警,添加如下报警指标,并设置符合业务需求的阈值。

在这里插入图片描述

在这里插入图片描述

如何定位和处理堆积问题

假如收到堆积报警,确认消息出现堆积情况,可参考以下措施进行定位和处理。

  1. 判断消息堆积在 RocketMQ 服务端还是客户端
  • 查看客户端本地日志文件 ons.log,搜索是否出现如下信息:the cached message count exceeds the threshold
  • 出现相关日志信息,说明客户端本地缓冲队列已满,消息堆积在客户端,请执行步骤2。
  • 若未出现相关日志,说明消息堆积不在客户端,若出现这种特殊情况,请直接提交工单联系阿里云技术支持。
  1. 确认消息的消费耗时是否合理
  • 若查看到消费耗时较长,则需要查看客户端堆栈信息排查具体业务逻辑,请执行步骤3。
  • 若查看到消费耗时正常,则有可能是因为消费并发度不够导致消息堆积,需要逐步调大消费线程或扩容节点来解决。

消息的消费耗时可以通过以下方式查看:

查看消费者状态,在客户端连接信息中查看业务处理时间,获取消费耗时的平均值。

在这里插入图片描述

  1. 查看客户端堆栈信息。只需要关注线程名为 ConsumeMessageThread 的线程,这些都是业务消费消息的逻辑。
  • 客户端堆栈信息可以通过以下方式获取:查看消费者状态,在客户端连接信息中查看 Java 客户端堆栈信息

在这里插入图片描述

在这里插入图片描述

  • 使用 Jstack 工具打印堆栈信息。

常见的异常堆栈信息如下:

    • 示例一:
    • 消费逻辑有抢锁休眠等待等情况。
    • 消费线程阻塞在内部的一个睡眠等待上,导致消费缓慢。

在这里插入图片描述

    • 示例二:
    • 消费逻辑操作数据库等外部存储卡住。
    • 消费线程阻塞在外部的 HTTP 调用上,导致消费缓慢。

在这里插入图片描述

  1. 针对某些特殊业务场景,如果消息堆积已经影响到业务运行,且堆积的消息本身可以跳过不消费,您可以通过重置消费位点跳过这些堆积的消息从最新位点开始消费,快速恢复业务。
如何避免消息堆积

为了避免在业务使用时出现非预期的消息堆积和延迟问题,需要在前期设计阶段对整个业务逻辑进行完善的排查和梳理。整理出正常业务运行场景下的性能基线,才能在故障场景下迅速定位到阻塞点。其中最重要的就是梳理消息的消费耗时和消息消费的并发度。

  • 梳理消息的消费耗时通过压测获取消息的消费耗时,并对耗时较高的操作的代码逻辑进行分析。梳理消息的消费耗时需要关注以下信息:

    • 消息消费逻辑的计算复杂度是否过高,代码是否存在无限循环和递归等缺陷。
    • 消息消费逻辑中的 I/O 操作(如:外部调用、读写存储等)是否是必须的,能否用本地缓存等方案规避。外部 I/O 操作通常包括如下业务逻辑:
    • 读写外部数据库,例如 MySQL 数据库读写。
    • 读写外部缓存等系统,例如 Redis 读写。
    • 下游系统调用,例如 Dubbo 调用或者下游 HTTP 接口调用。
    • 消费逻辑中的复杂耗时的操作是否可以做异步化处理,如果可以是否会造成逻辑错乱(消费完成但异步操作未完成)。
  • 设置消息的消费并发度

    • 逐步调大线程的单个节点的线程数,并观测节点的系统指标,得到单个节点最优的消费线程数和消息吞吐量。
    • 得到单个节点的最优线程数和消息吞吐量后,根据上下游链路的流量峰值计算出需要设置的节点数,节点数=流量峰值/单线程消息吞吐量。

应用场景2:消息收发失败问题

消息收发的核心流程

在这里插入图片描述

从上图中可以看出消息收发都要先从 NameServer 返回路由,再通过 broker 的鉴权以及实例规格是否超限的判断,才能进行正常收发消息。根据经验检消息收发失败的原因有如下情况:

  • API 请求频率是否超过实例规格限制
  • 查网络是否正常
  • 服务端是否是有重启造成的短期收发失败
  • 操作资源是否有权限
常见的消息收发失败异常

在无论开发阶段还是生产运行阶段,遇到收发失败问题,我们都可以从客户端日志出发进行排查。以下列举下常见的消息收发失败异常场景:

  1. 在客户端日志中出现ClusterName ** consumer groupId ** consumer topic ** messages flow control, flow limit threshold is ***, remainMs **异常信息

原因:RocketMQ 每个实例都明确了消息收发 API 调用 TPS,例如,标准版实例支持每秒 5000 次 API 调用,若实例消息收发 API 调用频率超过规格限制,会导致实例被限流。实例被限流后,导致部分消息收发请求失败。

建议措施:

    1. 配置实例 API 调用频率监控告警

建议设置为规格上限的 70%。例如,您购买的实例消息收发 TPS 上限为 10000,则告警阈值建议设置为 7000。

在这里插入图片描述

    1. 配置限流次数告警

RocketMQ 支持将指定实例触发限流的事件作为监控项,通过对限流次数的监控,可以帮助您了解当前业务的受损情况。

在这里插入图片描述

  1. 在客户端日志中出现RemotingConnectException: connect to <118.xx.xx.xx:80> failed 或者 RemotingTimeoutException 等异常信息。

可能有如下原因:

    • MQ 服务升级过程中 , 会出现短暂的网络闪断,查看官网公告看是否在服务升级窗口
    • 检查应用服务器到broker的网络是否通畅,是否有网络延迟
    • 检查应用的网络带宽情况,是否被打满
    • 确认下应用是否出现 FGC 现象,FGC 会造成一定的网络延迟
  1. 在客户端日志当中出现 system busy, start flow control for a while 或者 broker busy, start flow control for a while等异常信息。

可能原因:共享集群 broker(出现网络,磁盘,IO 等抖动)压力大,造成消息收发出现排队现象;若是偶尔短暂抖动,此类错误 SDK 会自动重试,但建议在自己的业务代码做好异常处理,当自动重试次数超限仍失败情况下,业务根据需要做好容灾。若长时间持续出现,可以提工单让技术人员跟进排查。

点击此处查看消息队列 RocketMQ 版产品

相关推荐

推荐一款好用的刷题工具

为了帮助正在准备求职季的开发者提升备战效率,阿里云特别推出“通义灵码陪你备战求职季”活动,精心挑选百道历史校招技术面试/笔试题,借助通义灵码智能问答、代码智能生成、代码优化等核心功能,帮助开发者更加准确地了解程序员职业所需的核心技能,加强对问题解决思维和解题能力的练习。

阿里巴巴云原生的博客 1383

通义灵码 Visual Studio 下载安装指南(附安装包)

本安装步骤适用于 Windows 10 及以上操作系统中安装和使用通义灵码。

阿里巴巴云原生的博客 4436

阿里云智能体白皮书开源进展

![1](https://img2024.cnblogs.com/blog/1411156/202611/1411156-20261113183315580-502702075.png)![2](https://img2024.cnblogs.com/blog/1411156/202611/1411156-20261113183334678-741777744.png)![3](https://img2024.cnblogs.com/blog/1411156/202611/1411156-20261

阿里巴巴云原生的博客 1

万联智策基于 AgentCore 构建数字员工团队,800+智能体规模化落地

1 个智能 Leader,带领 4 个专家级智能“员工”,配套约 800 个随时可调用的 AI 数字员工,这样一个 AI 团队能帮企业做什么事?

阿里巴巴云原生的博客 12

关于 DeepSeek 的 SuperAgent,以及我们的实践

DeepSeek 的 SuperAgent 发布之后,行业内的普遍观点是 Agent 的设计基本收敛,对于我们也是一样,本文除介绍 DeepSeek SuperAgent 设计之外,会重点谈谈我们类似 SuperAgent 的技术和产品化探索。

阿里巴巴云原生的博客 88

生产更可信,订阅更耐用丨Higress 社区进展报告

阿里巴巴云原生的博客 145

让 Agent 成为企业生产力丨Alibaba Cloud AgentCore 企业智能体构建与治理沙龙·杭州站精彩回顾 & PPT 下载

近日,让 Agent 成为企业生产力丨Alibaba Cloud AgentCore 企业智能体构建与治理沙龙·杭州站圆满落幕。本场活动吸引了 100+ 名技术从业者深度参与,深度分享了企业 Agent 趋势、AgentCore 构建与治理、Agent 观测与优化、STAROps 智能运维及 AI 网关等相关议题,并设置了动手实操环节。

阿里巴巴云原生的博客 182

如何用 STAROps Elasticsearch 智能助手看穿“搜索变慢”

某电商平台的商品搜索服务使用一台 6 个数据节点的 Elasticsearch 实例。周五北京时间 20:00 起,业务陆续反馈搜索变慢。业务监控中的搜索接口 P99 从平时约 200 ms 升到 2s 以上,部分请求超时。值班工程师打开控制台:集群状态为 Green,没有未分配分片,集群平均 CPU 约 40%,乍看不像资源已经吃紧。

阿里巴巴云原生的博客 334

满帮基于阿里云 AgentCore 打造生产级 SRE 稳定性数字人

满帮基于阿里云 AgentCore 构建“稳定性数字人”:满帮提供业务知识、专业工具与处置流程,AgentCore 提供智能体运行、协作和治理支撑。数字人已在核心链路的巡检与根因分析中得到应用,受控处置能力也在持续建设,让满帮积累的稳定性能力能够在具体任务中得到复用。

阿里巴巴云原生的博客 263

稳定复现超 70% 的缺陷,报警到自动修复的 Agent 流水线实践

本文将分享我们在 PolarDB-X 团队做的一些工程实践:让 Agent 从一条报警或工单出发,自主完成排查、复现、修复和验证,再把结果交给研发评审。

阿里巴巴云原生的博客 296

从“自证清白”到“因果链条”:智能体如何重塑运维排障效率

STAROps 做全域关联分析,把范围从「五个团队依次自证清白」收拢到一条具体链路;证据指向对象存储后,OSS Agent 接手,基于真实配置、访问日志和用量数据往下挖,给出根因和支撑它的证据链。你面对的始终是一个对话框:路由归它管,说清现象、拍板方案归你。

阿里巴巴云原生的博客 126

TechTalk丨从能买奶茶到能进企业,Agent 绕不开同一组问题

史明伟所在的 Alibaba Cloud AgentCore 是企业级 Agent 构建和治理平台,为 Agent 在业务场景下的规模化落地提供基础设施,所以这场对话,他和 Datawhale 主持人从个人助理一路聊到企业 Agent:权限该怎么一步步放开?进了企业,账号打通、数据权限、沙箱隔离又会带来哪些新问题?没有强技术团队的企业,该从哪里起步?

阿里巴巴云原生的博客 217

AgentCore + Codex 构建生产级 Agent 的原理与实践

本文章演示 AgentCore[1]的自定义代码/镜像能力,目的是展示如何基于自定义的 Harness 框架(Codex) 结合 AgentCore 提供的身份、模型、工具、技能、凭证 、观测评估等能力实现一个端到端的 Agent 应用,内容包含两个部分,技术方案和实践教程,文末附相关源码和本次的测试数据,可以根据需要自行查阅。

阿里巴巴云原生的博客 190

让复杂任务由团队完成:阿里云 AgentCore 多 Agent 协作架构及实践

Alibaba Cloud AgentCore 以身份、通信、团队和任务为基础,让专业 Agent 与人类成员共同参与业务协作。企业可以按职责组合知识、工具、Skill 和模型,用任务系统持续追踪工作,再结合 AgentLoop 评估效果、优化配置。

阿里巴巴云原生的博客 356

易点天下:AI 驱动 IT 运维组织提效的实践

易点天下作为一家专注品牌全球化的营销科技公司,由智能营销、全域增长、智能变现三大引擎驱动。公司旗下拥有“整合营销服务”与“广告平台业务”两大业务线。

阿里巴巴云原生的博客 306

阿里云可观测 2026 年 10 月产品动态

阿里云可观测 2026 年 10 月产品动态

阿里巴巴云原生的博客 206

用 Nacos 3.3.0 ARD 让 Agent 按任务发现工具和 Skill

如今,工作中用 Agent 帮忙已经越来越常见。研发同学用 Coding Agent 写代码、补测试、排查问题,业务同学用 Work Agent 整理资料、分析表格、制作演示文稿。不少过去需要自己一步步操作的事情,现在可以把需求交给 Agent,让它协助完成。

阿里巴巴云原生的博客 325

HiRoute 新版本发布:结合自己的真实工作选择最佳模型

HiRoute[1]是一个开源、运行在本地的 Agent 智能路由引擎。你继续用 Codex、Claude Code、Qoder、Pi、OpenCode、Hermes、DeepSeek Harness 等熟悉的 Agent,由 HiRoute 判断每一步交给哪个模型。

阿里巴巴云原生的博客 391

用户说 App“下不了单”:用 Session Replay 看清流程卡在哪一步

Session Replay(会话回放)将采集到的页面变化重建为可回看的过程。研发可以沿着这次会话,查看操作前后的界面变化,先确认流程停在了哪里,再结合当时的事件、日志和代码检查原因。

阿里巴巴云原生的博客 55

欢迎报名丨Alibaba Cloud AgentCore 企业智能体构建与治理八城巡回沙龙 · 杭州站开启

欢迎报名丨Alibaba Cloud AgentCore 企业智能体构建与治理八城巡回沙龙 · 杭州站开启

阿里巴巴云原生的博客 153

运维走出控制台:阿里云 AgentCore AI Native 运维实践

UModel 让现场能够被关联,运维数字员工让经验能够被调用,AgentCore Team 让分析能够协作,AgentLoop 让质量能够被检验。这些建设共同服务于一件事:让团队对系统的理解,成为每个人处理问题时都能接上的能力。

阿里巴巴云原生的博客 305

从长程 Agent 到 Super-agent,解锁更多场景

Deepseek Harness 提升了架构的透明度,但也带来了工程上的复杂度。这次开源的dsh-superagent-prototype,是对 Agent “连续实体”能力的工程拆解。

阿里巴巴云原生的博客 240

排查提效 50%:淘大集新核心系统的观测护航之路

供应链运维,缺的不是更多机器,是“一条能把指标、日志、链路串起来的线”。阿里云 ARMS+SLS+云监控2.0+STAROps 重构观测底座。

阿里巴巴云原生的博客 149

概率、插座与 5000 个爱因斯坦:专访阿里云研发副总裁周琦

这次访谈发生在 2026 年云栖大会之后。大会期间,阿里云发布了智能体构建和治理平台 AgentCore,将企业级 Agent 基础设施进一步标准化和托管化。

阿里巴巴云原生的博客 157

Agent 数据飞轮平台的选型和实践

用统一标准判断修改效果,积累覆盖不同路径的测试样本,沿执行记录排查失败,并将典型问题纳入后续回归。而这也是宙斯接入 AgentLoop 要解决的问题。

阿里巴巴云原生的博客 33

Durable Agent 详解:如何让 Agent 在云端长期稳定运行

本文使用一个具体的用户任务示例“向五位客户发送通知邮件”,解释为什么保存聊天记录还不够,再以 AgentScope 构建的 Agent 为例,展开任务状态、持久提交和故障恢复的通用设计,最后结合 Alibaba Cloud AgentCore 已有的 Harness 托管与节点恢复能力,讨论共享状态、可靠调度及 Brain / Hands 分离如何支撑更完整的长期托管服务。

阿里巴巴云原生的博客 337

Qoder × AgentLoop:智能体规模化应用,敏感数据保护如何跟上?

智能体观测与优化平台 AgentLoop 持续分析已采集的 Qoder 审计日志,将发现的风险线索关联到具体会话、工具调用、成员和环境,帮助安全团队回查任务过程、明确需要整改的环节,并复查处理效果。

阿里巴巴云原生的博客 294

完整还原已经服务千家企业的 AIOps Agent 的评测和调优实践

阿里云 STAROps 是一个生产运维 Agent,通过连接多域数据、运维工具与专家经验,从被动响应走向智能自治,7×24 保障业务连续、稳定运行。本文将分享 STAROps 的评测和调优实践。

阿里巴巴云原生的博客 202

阿里云云原生四项 AI 应用工程化实荣获“鼎新杯”优秀案例

第五届“鼎新杯”由中国通信标准化协会主办、中国信息通信研究院承办,自2026年05月正式启动,历时近 5 个月,聚焦国内政企数智化转型领域的创新成果,旨在为行业提供可复制、可推广的实践参考。

阿里巴巴云原生的博客 328

交付周期从 51 天缩短到 14 天,多 Agent 协作产品⾃进化背后的组织重构

本⽂结合这段实践,介绍评测如何驱动产品持续进化、⼈机协作的边界如何设定,以及团队如何通过统⼀⽬标、结果标准和责任分⼯,减少跨岗位交接,降低沟通损耗,把技术能⼒转化为实际交付效果。

阿里巴巴云原生的博客 331
上一篇: 统一观测丨如何使用 Prometheus 监控 MySQL
下一篇: Apache RocketMQ 入选 SegmentFault 年度中国技术品牌影响力企业榜单!
阿里云云原生
阿里云云原生 企业官方账号 企业官方账号
博客等级 码龄8年 1万+粉丝 3154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值