开发者社区 > 云原生 > 云消息队列 > 正文

RocketMQ只有升级到5.1才能解决问题吗?如果大量消息消费失败,会严重影响客户端的性能。

RocketMQ5.0服务端版本,当消费端消息消费失败,consumerSendMsgBack会返回错误信息:look message by offset failed to check the topic name,导致客户端重试消息必须走sendMessageBackAsNormalMessage方法,这个只有升级到5.1才能解决问题吗?如果大量消息消费失败,会严重影响客户端的性能。

展开
收起
嘟嘟嘟嘟嘟嘟 2023-10-17 23:52:59 122 0
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    问题的根本原因是 RocketMQ 5.0 版本中的一个已知 bug,导致 consumerSendMsgBack 方法返回错误信息:“look message by offset failed to check the topic name”。这个问题在 RocketMQ 5.1 版本中得到了修复。

    如果你使用的是 RocketMQ 5.0 版本,并且遇到了该问题,建议考虑以下解决方案:

    1. 升级到 RocketMQ 5.1 版本:升级到最新版本可以解决该问题。RocketMQ 5.1 版本修复了许多问题和 bug,并提供了更好的性能和稳定性。

    2. 使用 sendMessageBackAsNormalMessage 方法进行消息重试:如果无法立即升级到 5.1 版本,你可以使用 sendMessageBackAsNormalMessage 方法来手动将消费失败的消息重新发送到 Broker 进行重试。尽管这可能对客户端性能有一定影响,但仍然是一个可行的临时解决方案。

    2023-10-30 19:19:45
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据提供的信息,如果你在使用RocketMQ 5.0版本的服务端,并且当消费端消息消费失败时,consumerSendMsgBack会返回错误信息:look message by offset failed to check the topic name,可能会导致客户端重试消息必须走sendMessageBackAsNormalMessage方法,可能是因为以下原因之一:

    1. 配置问题:请检查你的RocketMQ配置是否正确。特别是关于消费者重试的消息发送方式的配置,包括topic name和offset的配置。如果你的配置不正确,可能会导致consumerSendMsgBack返回错误信息,并导致客户端重试消息必须走sendMessageBackAsNormalMessage方法。
    2. 版本问题:请检查你使用的RocketMQ版本是否支持消费者重试的消息发送方式。如果你使用的版本不支持消费者重试的消息发送方式,可能需要更新到支持消费者重试的消息发送方式的版本。
    3. 其他问题:除了以上原因外,还可能存在其他原因导致consumerSendMsgBack返回错误信息,并导致客户端重试消息必须走sendMessageBackAsNormalMessage方法。
    2023-10-18 14:10:22
    赞同 展开评论 打赏
  • 9e90cc8a5ad8c38b883d450d6a13f98e.png

    此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-10-18 00:12:08
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载