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

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

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

展开
收起
2401。 2023-08-27 16:45:22 101 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) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

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

    热门文章

    相关电子书

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