RocketMQ默认提供18个固定延迟级别,对应不同时间间隔(如1s、5s、10s、1h、2h等)。
每个级别对应一个内部队列,消息根据延迟级别暂存至对应的队列中,到期后由Broker重新投递到目标Topic
延迟消息的实现原理:
生产者生产消息时,设置延迟级别;
broker根据延迟级别,将消息暂存至对应的内部队列中(broker会为每个队列单独起一个线程,默认每秒扫描一遍看是否到期)
待对应的消息到期后,broker重新投递到目标Topic;
消费者收到消息后,消费即可。
RocketMQ默认提供18个固定延迟级别,对应不同时间间隔(如1s、5s、10s、1h、2h等)。
每个级别对应一个内部队列,消息根据延迟级别暂存至对应的队列中,到期后由Broker重新投递到目标Topic
延迟消息的实现原理:
生产者生产消息时,设置延迟级别;
broker根据延迟级别,将消息暂存至对应的内部队列中(broker会为每个队列单独起一个线程,默认每秒扫描一遍看是否到期)
待对应的消息到期后,broker重新投递到目标Topic;
消费者收到消息后,消费即可。