死信队列和延迟队列的介绍

简介: 死信队列和延迟队列的介绍

公众号merlinsea


TTL【time to live】介绍



   消息的存活时间

   消息如果在存活时间内没有被消费则会被broker清除,变为死信消息


   rabbitmq中设置消息的ttl方式:

           方式1: 单个消息设置ttl

           方式2:整个队列设置ttl【使用居多】


死信队列介绍



       用于存放死信消息的队列

         哪些消息是死信消息呢?

      1、消费者拒收消息(basic.reject/ basic.nack),并且没有重新入队 requeue=false。

            2、消息在队列中未被消费,且超过队列或者消息本身的过期时间TTL(time-to-live) 。

            3、队列中的消息达到最大容量,已经存放不了的消息。


死信交换机



   Dead Letter Exchange(死信交换机,缩写:DLX)当消息成为死信后,会被重新发送到另一个交换机,这个交换机就是DLX死信交 换机,死信交换机后面绑定的队列就是死信队列。


死信队列的图示:

640.jpg

【普通队列】包括的参数:


核心:1、过期时间    2、死信交换机是哪个   3、重新指定的key是什么


640.jpg


延迟队列介绍



   ⼀种带有延迟功能的消息队列,Producer 将消息发送到消息队列 服务端,但并不期望这条消息⽴⻢投递,⽽是推迟到在当前时间点 之后的某⼀个时间投递到Consumer 进⾏消费,该消息即定时消息


   延迟队列可以通过上面的死信队列来完成,只需要普通队列没有消费者进行监听即可做到定时消息的功能。

640.jpg


相关文章
|
7月前
|
消息中间件
六、死信队列
六、死信队列
75 0
|
4月前
|
存储 监控 安全
死信队列的死信队列
死信队列的死信队列
|
7月前
|
存储 消息中间件 前端开发
队列
队列
84 0
|
缓存
指令缓存队列
指令缓存队列
73 0
|
7月前
|
存储 Java
Java循环队列
Java循环队列
48 0
|
7月前
队列的实现
队列的实现
|
消息中间件
RabbitMQ 的死信队列、延迟队列
RabbitMQ 的死信队列、延迟队列
98 0
|
机器学习/深度学习 存储 C语言
队列的实现(上)
队列的实现(上)