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

消息队列RocketMQ版消息没有被立马消费,延迟很久才被消费是什么原因?

消息发送时间到消费中间这段时间延迟比较久,例如上午发送的消息,到下午才被消费。

展开
收起
Lee_tianbai 2021-01-01 16:45:03 4298 0
1 条回答
写回答
取消 提交回答
  • 【排查步骤】: 1. 查看下发送的时间段,topic 的发送量和消费量对比,看下是否处于一个业 务高峰期,导致消息有堆积,如果有消息堆积,那么延迟投递是正常现象。 如果一直有堆积,建议增大消费能力,比如优化消费逻辑业务代码,或者增 加消费者机器。 2. 查看 ons.log 日志,如果在 ons.log 中看到了。 2019-07-05 16:46:39,039 WARN RocketmqClient - the cached message count exceeds the threshold 1000, so do flow control, minOffset=4731, maxOffset=5738, count=1008, size=0 MiB, pullRequest=PullRequest 【consumerGroup=GID_MR_SG_ACTIVITY_TEST, messageQueue=MessageQueue 【topic=T_MR_SG_USER_TASK_NORMAL_TEST, brokerName=hz-share2-03, queueId=7】, nextOffset=5739】, flowControlTimes=7235001。 这个警告是因为客户端消费能力不足,导致拉取消息也被暂停了。此时就需 要增加消费能力,比如增加消费线程,或者增加消费者实例。 3. 查看下是否是消费速度太低,可以根据消费者状态当中的实时消费速度判断, 如果消费速度过低,那么消息存放的队列堆积就会比较严重,影响消费时间, 建议配置上堆积监控。配置后超过多少堆积告警,或者考虑增加消费实例, 让消费能力稍微大于生成能力。

    2021-01-05 14:23:48
    赞同 展开评论 打赏

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

相关产品

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

    更多
    企业互联网架构之消息队列 立即下载
    基于消息队列RocketMQ的大型分布式应用上云最佳实践 立即下载
    云原生消息队列Apache RocketMQ 立即下载