文章预览
此答案节选自我们最近弄的 面试鸭刷题工具 ,更多 大厂常问面试题 ,可以点击下面的小程序进行阅读哈! 回答重点 RabbitMQ 本身不支持延迟消息,但是可以通过它提供的两个特性 TTL(Time-To-Live and Expiration ,消息存活时间)、DLX(Dead Letter Exchanges,死信交换器) 来实现。还可以利用 RabbitMQ 插件来实现。 使用TTL + 死信队列: 在 RabbitMQ 中,通过设置消息的 TTL 和死信交换器可以实现延迟队列。 不给原队列(正常队列)设置消费者,当消息在原队列中达到 TTL 后,由于还未被消费,则会被转发到绑定的死信交换器,消费者从死信队列中消费消息,从而实现消息的延迟处理。 使用 RabbitMQ 插件:延迟消息插件(rabbitmq-delayed-message-exchange): 通过安装 RabbitMQ 的延迟消息插件,可以直接创建延迟交换器(Delayed Exchange)。 在发送消息时,指定消息的延迟
………………………………