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

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

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

展开
收起
Lee_tianbai 2021-01-01 16:45:03 4041 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
    赞同 展开评论 打赏

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

相关产品

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

    热门文章

    相关电子书

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