(rabbitmq的高级特性)死信交换机

对应的教程视频:

高级篇Day5-02-死信交换机_哔哩哔哩_bilibili

1.初始死信交换机

img

总结:

什么样的消息会成为死信?

•消息被消费者reject或者返回nack

•消息超时未消费

•队列满了

如何给队列绑定死信交换机?

•给队列设置dead-letter-exchange属性,指定一个交换机

•给队列设置dead-letter-routing-key属性,设置死信交换机与死信队列的RoutingKey

2.TTL

img

imgimg

img 总结:

消息超时的两种方式是?

  • 给队列设置ttl属性,进入队列后超过ttl时间的消息变为死信

  • 给消息设置ttl属性,队列接收到消息超过ttl时间后变为死信

•两者共存时,以时间短的ttl为准

如何实现发送一个消息20秒后消费者才收到消息?

  • 给消息的目标队列指定死信交换机

  • 消费者监听与死信交换机绑定的队列

  • 发送消息时给消息设置ttl为20秒

3.延迟队列

img

延迟队列插件

因为延迟队列的需求非常多,所以RabbitMQ的官方也推出了一个插件,原生支持延迟队列效果。

详细安装过程略~~~(我也没装,只是做下笔记,具体怎么装看教程视频吧或是自行查询资料)

img

imgimg

img

img

总结:

延迟队列插件的使用步骤包括哪些?

•声明一个交换机,添加delayed属性为true

•发送消息时,添加x-delay头,值为超时时间