消息发送时间到消费中间这段时间延迟比较久,例如上午发送的消息,到下午才被消费。
【排查步骤】: 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. 查看下是否是消费速度太低,可以根据消费者状态当中的实时消费速度判断, 如果消费速度过低,那么消息存放的队列堆积就会比较严重,影响消费时间, 建议配置上堆积监控。配置后超过多少堆积告警,或者考虑增加消费实例, 让消费能力稍微大于生成能力。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/