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

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

公众号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


相关文章
|
6月前
|
消息中间件
六、死信队列
六、死信队列
68 0
|
3月前
|
存储 监控 安全
死信队列的死信队列
死信队列的死信队列
|
消息中间件
RabbitMQ的死信队列和延时队列
RabbitMQ的死信队列和延时队列
|
6月前
|
消息中间件 数据库
七、延时队列
七、延时队列
77 0
|
11月前
|
C++
c++ 队列
队列的数据结构
36 0
|
消息中间件
RabbitMQ 的死信队列、延迟队列
RabbitMQ 的死信队列、延迟队列
91 0
|
机器学习/深度学习 存储 C语言
队列的实现(上)
队列的实现(上)
|
存储
队列的使用
队列的使用
81 0