RocketMQ发送延时消息时先把消息按照延迟时间段发送到指定的队列中(rocketmq把每种延迟时间段的消息都存放到同⼀个队列中)然后通过⼀个定时器进⾏轮训这些队列,查看消息是否到期,如果到期就把这个消息发送到指定topic的队列中,这样的好处是同⼀队列中的消息延时时间是⼀致的,还有⼀个好处是这个队列中的消息时按照消息到期时间进⾏递增排序的,说的简单直⽩就是队列中消息越靠前的到期时间越早。
参考:分布式技术专题-RocketMQ延迟消息实现原理和源码分析 - 百度文库

RocketMQ发送延时消息时先把消息按照延迟时间段发送到指定的队列中(rocketmq把每种延迟时间段的消息都存放到同⼀个队列中)然后通过⼀个定时器进⾏轮训这些队列,查看消息是否到期,如果到期就把这个消息发送到指定topic的队列中,这样的好处是同⼀队列中的消息延时时间是⼀致的,还有⼀个好处是这个队列中的消息时按照消息到期时间进⾏递增排序的,说的简单直⽩就是队列中消息越靠前的到期时间越早。
参考:分布式技术专题-RocketMQ延迟消息实现原理和源码分析 - 百度文库