前言
RabbitMQ本身是不支持延迟消息的,但是RqbbitMQ可以通过其提供的两个特性TTL(消息存活时间)和DLX(死信交换器)来实现。
TTL+死信队列
在MQ中,设置消息的过期时间,但是该消息没有消费者,同时绑定死信队列,在消息过期后,消息将转到死信队列,消费者消费死信队列的消息即可,这就是使用TTL+死信队列实现的延迟队列。
RabbitMQ插件
还可以使用延迟消息插件实现延迟队列,延迟消息插件可以直接创建延迟交换器,在发送消息时,指定消息的延迟时间,在MQ中的消息到达延迟时间后,在将其转发到对应的队列中,由消费者进行消费。