文档

消息消费常见问题

更新时间:
一键部署

客户端首次接入连接不上服务端,收不到消息如何排查?

请检查以下配置是否填写正确:

  • 检查接入点是否填写正确。接入点请从控制台实例详情页面获取。

  • 使用telnet 接入点域名 端口命令初步检查网络连通性。

    • 若您的应用部署在本地、或需要跨地域访问且无法使用CEN组网,您需要使用公网接入点访问云消息队列 RocketMQ 版实例。使用公网接入点会产生下行流量费用,具体信息,请参见4.x系列公网访问费用5.x系列公网访问费用

    • 若您的应用部署在阿里云ECS上,您可以使用VPC接入点通过VPC专有网络访问云消息队列 RocketMQ 版实例。该场景下,需要保证阿里云ECS的地域和要访问的云消息队列 RocketMQ 版实例处于同一地域。

  • 5.0系列实例若开启公网访问,请确认是否有配置白名单。公网访问默认全部地址放行,若配置了白名单则仅白名单中的IP地址允许访问云消息队列 RocketMQ 版

  • 检查Topic名称是否填写正确,不要有多余空格或特殊字符等,并确保Topic已在控制台提前创建。

  • 检查用户名密码是否设置正确。

    • 5.0系列实例:需要填写实例的用户名和密码,在控制台实例详情页获取。

    • 4.0系列实例:需要填写阿里云账号或RAM用户的AccessKey(AccessKey ID和AccessKey Secret)并正确授权。获取方式,请参见创建AccessKey

订阅关系不一致如何处理?

登录控制台,进入Group 管理页面,查看指定Group的订阅关系及消费者信息,将不符合预期的消费者的订阅代码中的订阅关系修改一致。

如何处理消息堆积?

消息出现堆积,可能原因如下:

  • 消费者消息处理逻辑异常,导致消息无法正常消费。

  • 消息生产应用出现突发流量,消息生产速度远大于消费速度,消息来不及消费出现堆积。

  • 消费者依赖的下游服务耗时变长,消费线程阻塞等。

  • 消费线程不够,消费并发度较小,消费速度跟不上生产速度。

您需要查看客户端日志或客户端堆栈信息,确定异常原因,具体操作,请参见如何处理消息堆积

消费者消费不到消息如何处理?

  1. 登录云消息队列 RocketMQ 版控制台,进入Group 管理页面,查看消费者是否在线,客户端连接是否正常,若客户端未连接,查看客户端日志根据报错修改异常。

  2. 查看订阅关系是否一致,若不一致根据订阅关系的分布情况定位消费者客户端,修改客户端的订阅消息代码。

若某个消费组下的机器宕机,机器重启期间,消息会不会丢失?

云消息队列 RocketMQ 版的订阅是持久化订阅,ConsumerGroup下线或消费异常时,消息不会丢失。当消费者客户端重新上线后,直接从下线前的消费位点继续消费消息。

订阅消息时消息Tag是否可以为空?

订阅消息时Tag设置为空会导致消费者消费不到任何消息。若您希望订阅Topic中的所有消息,则需要将Tag设置为*。示例代码如下:

String topic = "Your Topic";
//使用Tag标签过滤消息,订阅所有消息。
FilterExpression filterExpression = new FilterExpression("*", FilterExpressionType.TAG);
pushConsumer.subscribe(topic, filterExpression);

更多信息,请参见Tag标签过滤

创建新的消费分组订阅旧的Topic,如何设置消费起始位置?

消费者分组创建时不支持设置消费起始位置,不管是订阅新的Topic还是旧的Topic,消费者第一次启动时都会默认从Topic中的最早一条消息开始消费。

消费者首次启动后,您可以在云消息队列 RocketMQ 版控制台重置消费位点,具体操作,请参见重置消费位点

  • 本页导读 (1)
文档反馈