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

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

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

展开
收起
-Feng、冯冯 2023-10-17 23:52:59 78 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
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

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

    热门文章

    相关电子书

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