rocketmq5.0 延迟消息 为啥延迟严重? 10分钟就能精准送达,非10分钟就延迟10几秒到1

rocketmq5.0 延迟消息 为啥延迟严重? 10分钟就能精准送达,非10分钟就延迟10几秒到10几分钟呢?

展开
收起
真的很搞笑 2023-04-16 23:33:42 1734 分享 版权
4 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    RocketMQ 的延迟消息机制是通过在消息的属性中指定消息的过期时间来实现的。RocketMQ 的消息推送方式是基于 push 的方式,服务器会主动将消息发送给消费者,因此 RocketMQ 的消息延迟机制对消息推送的准确性有很高的要求。如果消息延迟,可能有以下情况:

    1. 网络延迟:RocketMQ 依赖网络进行消息的传输和推送,如果网络延迟,可能导致消息推送的延迟。

    2. 生产者时间戳:RocketMQ 4.x 版本中,消息的延迟时间是通过在消息属性中设置消息过期时间实现的。如果在生产者发送消息时,时间戳设置不准确,可能导致消息过期时间计算错误,进而导致消息延迟。

    3. 消费者并发度:如果消费者的并发度设置过低,可能导致消息推送速度较慢,从而导致消息延迟。

    4. 消息队列拥塞:当消息消费处理速度不够快时,会导致消息队列积压,进而导致消息延迟。

    针对上述情况,可采取以下措施优化消息延迟:

    1. 确保网络通畅,包括生产者和消费者的网络通畅,并优化服务器带宽和网络连接等。

    2. 确认生产者消息的时间戳设置正确。

    3. 优化消费者的并发度,增加消费者的数量,提高并发处理速度。

    4. 对于消息队列拥塞的情况,可采取增加消息队列数量、扩容消费者等方式解决。

    另外,建议您升级到更高版本的 RocketMQ,最新版本的 RocketMQ 在消息推送速度和延迟等方面都有一定的优化和改进。

    2023-04-30 09:07:07
    赞同 展开评论
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    延时消息可以通过设置StartDeliverTime来设置延时消息开始消费时间,StartDeliverTime是服务端开始向消费端投递的时间。如果消费者当前有消息堆积,那么定时和延时消息会排在堆积消息后面,将不能严格按照配置的时间进行投递。 由于客户端和服务端可能存在时间差,消息的实际投递时间与客户端设置的投递时间之间可能存在偏差。 设置延时消息的投递时间后,依然受3天的消息保存时长限制。 例如,设置延时消息5天后才能被消费,如果第5天后一直没被消费,那么这条消息将在第8天被删除。

    2023-04-17 14:21:17
    赞同 展开评论
  • 值得去的地方都没有捷径

    RocketMQ 5.0 的延迟消息实现是通过消息的定时投递来实现的,即消息在发送时设置一个延迟时间,RocketMQ 会在延迟时间到达时再将消息投递给消费者。这种实现方式会导致延迟时间的不确定性,因为消息在定时投递时需要等待一定时间,而这个等待时间会受到多种因素的影响,例如网络延迟、消息队列的负载等。

    另外,RocketMQ 5.0 的延迟消息实现还存在一些问题,例如有时会出现消息延迟时间比设置的时间还要长的情况。这些问题可能是由于实现的复杂性以及各种因素的影响导致的。

    如果您的应用程序对消息的延迟时间非常敏感,建议您使用其他实现方式,例如通过定时任务来模拟延迟消息的发送。

    2023-04-17 11:29:47
    赞同 展开评论
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    RocketMQ 的延迟消息并不是绝对精准的,延迟消息的处理机制是:“定时消息队列”的队列存储所有延迟消息,并按照其到期时间进行排序。当一个延迟消息的到期时间到达时,RocketMQ 会将其放入对应的主题队列中,等待消费者消费。

    所以,这个跟消息发送时间、延迟级别、队列长度等有关系。如果定时消息队列中的消息数量很多,可能会导致消息在队列中等待的时间变长,进而导致延迟时间变长。

    2023-04-17 09:30:19
    赞同 展开评论
问答分类:
问答标签:

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系列产品 Serverless 化。RocketMQ 中文社区:https://rocketmq-learning.com/

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理