全部产品
云市场
    使用消息队列 RocketMQ 版后消息未到预期客户端

使用消息队列 RocketMQ 版后消息未到预期客户端

更新时间:2020-01-08 09:59:40

问题描述

  1. 用户使用消息队列 RocketMQ后,部分消息发送后,消费者未收到。登录消息队列 RocketMQ 控制台,依次选择 消息轨迹 > 创建查询任务 > 按 Message ID 查询,输入对应的信息,发现部分消息已发送至Broker节点,但未投递给下游消费者。
  2. 登录消息队列 RocketMQ 控制台,依次选择 Group 管理 > 消费者状态,在连接信息下方出现非预期范围内的客户端IP地址,同时在非预期范围内的客户端上存在部分消息堆积。

 

问题原因

用户以错误的方式(AccessKeyId、AccessKeySecret、Topic等信息配置错误)启动了Group ID的客户端,导致该客户端进程占用了Topic中的部分消息队列,而无法正确消费消息。消息在服务端堆积,无法实时投递给下游正确的消费者。

 

解决方案

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
  1. 登录代码所在服务器,根据连接状态定位有问题的进程,然后通过/XXX/logs/ons.log文件以及代码查看配置的AccessKeyId、AccessKeySecret、Topic等信息,如不正确则进行修改。
  2. 若问题暂时无法解决,可以先关闭有问题的客户端进程,此时之前堆积的消息会立马进行调整,投递至正常的客户端,待定位的问题修复后,再重启有问题的进程。
  3. 执行以上步骤后需要进行结果验证。登录消息队列 RocketMQ 控制台,依次选择 Group 管理 > 消费者状态,在连接信息栏中,确认所有已连接的客户端IP地址都在预期范围内,并能正常消费消息,同时确认订阅关系是否一致显示

 

适用于

  • 消息队列 RocketMQ 版

 

如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。