对应的教程视频:
1.初始死信交换机
总结:
什么样的消息会成为死信?
•消息被消费者reject或者返回nack
•消息超时未消费
•队列满了
如何给队列绑定死信交换机?
•给队列设置dead-letter-exchange属性,指定一个交换机
•给队列设置dead-letter-routing-key属性,设置死信交换机与死信队列的RoutingKey
2.TTL
总结:
消息超时的两种方式是?
-
给队列设置ttl属性,进入队列后超过ttl时间的消息变为死信
-
给消息设置ttl属性,队列接收到消息超过ttl时间后变为死信
•两者共存时,以时间短的ttl为准
如何实现发送一个消息20秒后消费者才收到消息?
-
给消息的目标队列指定死信交换机
-
消费者监听与死信交换机绑定的队列
-
发送消息时给消息设置ttl为20秒
3.延迟队列
延迟队列插件
因为延迟队列的需求非常多,所以RabbitMQ的官方也推出了一个插件,原生支持延迟队列效果。
详细安装过程略~~~(我也没装,只是做下笔记,具体怎么装看教程视频吧或是自行查询资料)
总结:
延迟队列插件的使用步骤包括哪些?
•声明一个交换机,添加delayed属性为true
•发送消息时,添加x-delay头,值为超时时间