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

使用RocketMQ 4.5.2版本测试顺序消息场景时,发现启动之后立马发消息,会有消费延迟怎么解决

目前在使用RocketMQ 4.5.2版本测试顺序消息场景时,发现启动之后立马发消息,客户端会有很大概率会有消费延迟,目前定位原因主要可能是 ConsumeMessageOrderlyService#lockMQPeriodically 对队列进行上锁,一开始本地没有分配到队列导致问题,具体代码和问题在: https://github.com/apache/rocketmq/discussions/7241 , 有哪位大佬可以帮忙解答一下吗?

展开
收起
2401。 2023-08-27 16:45:22 91 0
1 条回答
写回答
取消 提交回答
  • RocketMQ 4.5.2版本中,顺序消息的消费延迟是正常的。因为顺序消息需要保证严格的顺序,所以消费者在消费消息之前,需要先从 broker 端拉取到之前的消息,然后才能消费当前的消息。这个过程会导致一定的延迟。

    如果想要减少消费延迟,可以通过以下方法:

    增加 broker 端的 messageDelayLevel 配置,这样可以让 broker 端缓存更多的消息。
    增加消费者的 pullInterval 配置,这样可以让消费者更频繁地从 broker 端拉取消息。
    使用 RocketMQ 的 批量消费 功能,这样可以一次拉取多个消息,减少消费者的请求次数。
    另外,如果需要保证消息的严格顺序,可以使用 RocketMQ 的 顺序消费 功能。

    2023-09-13 15:01:06
    赞同 展开评论 打赏

高弹性低成本、更稳定更安全、智能化免运维的消息队列服务,涵盖RocketMQ、Kafka、RabbitMQ、MQTT、MNS等。 RocketMQ一站式学习:https://rocketmq-learning.com

相关产品

  • 云消息队列 MQ
  • 相关电子书

    更多
    移动互联网测试到质量的转变 立即下载
    给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
    F2etest — 多浏览器兼容性测试整体解决方案 立即下载