消息队列RocketMQ版:消费异常运维排查体验

本文涉及的产品
云消息队列RocketMQ,TPS总和2000次/秒
简介: 本实验场景介绍消息队列RocketMQ版的可观测工具功能,通过示例程序模拟生产环境消费业务故障,并通过产品提供的开箱即用的可观测工具定位消费异常。
+关注继续查看

消息队列RocketMQ版:消费异常运维排查体验

1. 创建实验资源

开始实验之前,您需要先创建云服务器ECS实例和消息队列RocketMQ版实例。

  1. 在实验室页面,单击创建资源

说明:资源创建过程需要3~5分钟,请耐心等待。

  1. (可选)在实验室页面左侧导航栏中,单击云产品资源列表, 可查看本次实验资源相关信息(例如ECS的IP地址、用户信息等)。

image


2. 创建RocketMQ Topic、Group资源

本步骤将指导您在RocketMQ实例上创建用于收发消息的Topic和Group资源。

  1. 双击打开远程桌面的Chronmium网页浏览器。
  2. 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码用户密码输入框,单击登录
  3. 复制下方地址,在Chromium网页浏览器打开新页签,粘贴并访问消息队列RocketMQ版控制台。
https://ons.console.aliyun.com/overview
  1. 在左侧导航栏中,单击实例列表

image

  1. 实例列表页面顶部菜单栏中,切换到资源所在地域,例如华东1(杭州)。

说明:您可在云产品资源列表中查看消息队列RocketMQ版资源所在地域。

image

  1. 在实例列表页面,找到实验室分配的消息队列RocketMQ版实例,单击实例ID

说明:您可在云产品资源列表中查看消息队列RocketMQ版的实例ID。

image

  1. 在左侧导航栏中,单击Topic管理

image

  1. Topic管理页面,单击创建Topic

image

  1. 创建Topic面板,根据如下说明配置参数,然后单击确定
  • 主题名称:输入Topic名称,例如demo_topic。
  • 消息类型:本实验是基本消息收发体验,请选择普通消息
  • 描述:输文字描述,用于标识这个topic的作用,例如test。

image

  1. 在左侧导航栏中,单击Group管理。

image

  1. Group管理页面,单击创建Group

image

  1. 创建Group面板,根据如下说明配置参数,然后单击确定
  • GroupID:输入Group名称,例如demo_group。
  • 投递顺序性:本实验是基本消息收发体验,请选择并发投递
  • 描述:输文字描述,用于标识这个group的作用,例如test。

image

3. 登录云服务器ECS,运行故障模拟程序

本步骤将指导您如何体验定时消息收发程序。

  1. 在实验室页面右侧功能栏中,单击image 图标,切换至Web Terminal,自动连接到云服务器ECS。

image

  1. 执行如下命令,运行消息收发故障模拟程序,为降低体验复杂度,该程序中同时集成了生产和消费的业务逻辑。

说明:在本实验中,已在云服务器ECS中为您准备好Demo代码。

java -cp demo.jar -Dendpoints=xxx:8080  -Dtopic=xxx -Dgroup=xxx   workshop.ConsumeLagDemo

其中,命令中的部分参数需要根据测试的实例资源的实际信息输入。

参数

说明

-Dendpoints

实例接入点信息。在RocketMQ控制台>实例详情>TPC协议接入点>VPC专有网络的接入点信息中查看。

在本实验中,为了方便用户的操作,您可在云产品资源列表中查到VPC专有网络的接入点信息。

VPC专有网络的接入点信息格式一般为rmq-cn-{xxx}-vpc.cn-{xxx}.rmq.aliyuncs.com:8080。

说明:您可在云产品资源列表中查看VPC接入点信息,复制粘贴即可。

image

-Dtopic

实际发送的主题名称,输入步骤二创建的Topic名称。

-Dgroup

实际订阅消费使用的消费者分组,输入步骤二创建的Group名称。

-Dnum

输入希望发送的消息条数,例如10,代表10条消息。

image

预期的输出结果如下。

image

4. 使用消息轨迹等工具分析故障

上述步骤三模拟的是生产环境经常出现的一种故障场景,即消费方下游业务因数据库慢SQL等原因造成消费阻塞且出现了消费失败的场景。

在该场景下,虽然RocketMQ会对失败消息重新投递消费,但消费速度已经变慢产生堆积,业务需要及时排查消费慢和消费失败的原因。

在该场景下,业务方唯一知道的是业务订单没有正确处理,手上只有订单Id信息。因此借助RocketMQ消息轨迹功能可以快速定位当前消息的链路情况,并判断问题出在哪台机器。

  1. 在实验室页面右侧功能栏中,单击image图标,切换至远程桌面。

image

  1. 在左侧导航栏中,单击消息轨迹

image

  1. 在消息轨迹页面,单击创建查询任务

image

  1. 创建消息查询轨迹任务面板,Topic选择您在步骤二创建的Topic名称,时间范围选择最近十分钟,查询方式选择Message Key查询,在本实验中已经将订单Id设置为Message Key,因此在Message Key中可以输入订单Id查询轨迹,本实验中订单ID为OrderId_0,单击查询

image

在命令行中您可查看到订单ID信息。

image

  1. 等待查询结果,查询需要耗时大概1-2分钟。

image

预期的输出结果如下。

image

  1. 查询结果页面,单击右侧操作列下的消息轨迹

image

  1. 轨迹详情页面,单击消费者区域中的Group名称,例如本实验中单击demo_group

image

返回如下页面,您可查询消息的收发详情过程。

image

  1. 基于上述操作步骤,可以看出,RocketMQ消息轨迹功能可以帮助业务快速定位到某条链路的完整过程,从生产到消费的过程中的机器、时间、处理过程、处理结果都和步骤三中模拟的情况一致。在生产环境中可以进一步登录机器排查消费失败和慢的原因。

实验链接:https://developer.aliyun.com/adc/scenario/5047b5418f5349bcbd18ed69da2a135a

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
4月前
|
运维 Linux 开发工具
【运维知识基础篇】如何用Xshell连接VMware虚拟机及排查问题(二)
【运维知识基础篇】如何用Xshell连接VMware虚拟机及排查问题(二)
63 0
|
4月前
|
运维 安全 Linux
【运维知识基础篇】如何用Xshell连接VMware虚拟机及排查问题(一)
【运维知识基础篇】如何用Xshell连接VMware虚拟机及排查问题
85 0
|
5月前
|
运维
运维:快速排查操作系统问题进程
运维:快速排查操作系统问题进程
156 0
|
11月前
|
消息中间件 存储 NoSQL
【2021年遇到最头疼的Bug】【Alibaba中间件技术系列】「RocketMQ技术专题」Broker配置介绍及发送流程、异常(XX Busy)问题分析总结
【2021年遇到最头疼的Bug】【Alibaba中间件技术系列】「RocketMQ技术专题」Broker配置介绍及发送流程、异常(XX Busy)问题分析总结
438 0
【2021年遇到最头疼的Bug】【Alibaba中间件技术系列】「RocketMQ技术专题」Broker配置介绍及发送流程、异常(XX Busy)问题分析总结
|
消息中间件 RocketMQ
RocketMQ 同步复制 SLAVE_NOT_AVAILABLE 异常源码分析
最近在 RocketMQ 钉钉官方群中看到有人反馈说 broker 主从部署,在发布消息的时候会报 SLAVE_NOT_AVAILABLE 异常,报这个异常的前提 master 的模式一定为 SYNC_MASTER(同步复制),从 异常码可以直接判断的一种原因就是因为 slave 挂掉了,导致 slave 不可用,但是他说 slave 一切正常。 于是我决定撸一波源码。
304 0
|
消息中间件 搜索推荐 RocketMQ
RocketMQ的invokeSync call timeout异常的解决办法
在RocketMQ客户端的DefaultMQPushConsumer的start方法被执行时,时不时会报出invokeSync call timeout异常,如下:
1238 0
RocketMQ的invokeSync call timeout异常的解决办法
|
存储 数据采集 运维
看畅捷通如何利用阿里云快速定位异常,降低运维成本
阿里云通过日志服务综合解决方案,帮助畅捷通运维开发团队解决了误报频繁、无法快速发现问题站点、无法快速定位异常的问题,实现了运维效率、运维成本、沟通成本等方面的改善。支撑了畅捷通所有云产品的健康稳定运行,在IT运维开发领域树立了一个标杆。
看畅捷通如何利用阿里云快速定位异常,降低运维成本
|
弹性计算 运维 监控
ECS运维:操作系统有异常?诊断日志来帮忙!
操作系统配置不当或程序过载可能会造成ECS系统内核崩溃,这将导致夯机、异常重启或无法正常启动等问题。为了分析根本原因,运维人员通常要查看系统日志,但此时也许实例已经无法正常远程连接,使得分析诊断非常困难。阿里云提供了一键查看系统日志和屏幕截图功能,为运维人员提供一个方便的工具,支持系统故障的分析。
8058 0
|
消息中间件 Linux RocketMQ
解决RocketMQ报No route info of this topic:异常
近日在做RocketMQ的时候,mqnamesrv和mqbroker都正常启动了,但是在运行生产者的时候,报了个No route info of this topic的异常,让我很是郁闷。上网找了一些资料,现把解决办法记录如下,如果还有其他的原因导致这个问题的,后续会补充。 Linux系统下: 在启动mqbroker的时候需要指定autoCreateTopicEnable=true
11043 0
热门文章
最新文章
相关产品
云消息队列 Kafka 版
消息服务
云消息队列 MQ
推荐文章
更多