RabbitMQ-死信交换机(延时队列)

RabbitMQ-死信交换机(延时队列)

延时队列 = TTL + 死心交换机 或者 使用RabbitMQ提供的消失消息插件

死信交换机,当一个队列中的消息满足下列情况之一时,就可以成为死信

  1. 消费者使用basic.reject或basic.nack声明消费失败,并且消息的requeue参数设置为false
  2. 消息是一个过期消息,超时无人消费
  3. 要投递的队列,消息堆满了,最早的消息就可能成为死信

TTL,也就是Tile-To-Live。如果一个队列中的消息TTL结束仍未被消费,则就会变为死信。

  1. 消息所在的队列设置了存活时间
  2. 消息本身设置了存活时间

RabbitMQ-死信交换机(延时队列)

  1. 可以使用TTL + 死信交换机来实现,死信交换机的触发条件是这样的,1 当消息被拒绝后会把消息放到死信中 2 当消息的TTL过期后也会被放到死信交换机中 3 当队列的消息堆满后,最早的消息可能会放到死信中。
  2. 还有另外一种方式,就是RabbitMQ提供的插件,这样实现延时队列就会见会简单很多,声明一个队列,设置delayed属性为True,发送消息的时候添加x-delay头,添加过期时间。
相关推荐
武子康17 小时前
Java-221 RocketMQ 消息存储核心原理:CommitLog、ConsumerQueue、IndexFile 与消息过滤机制
java·大数据·分布式·消息队列·rabbitmq·rocketmq·java-rocketmq
Albert Edison17 小时前
基于 SpringBoot + RabbitMQ 完成企业级应用通信
spring boot·rabbitmq·java-rabbitmq
随风,奔跑18 小时前
RabbitMQ
后端·rabbitmq
或与且与或非20 小时前
rabbitmq选举集群搭建
分布式·rabbitmq·ruby
BIG_PEI21 小时前
如何判断Linux服务器上是否安装了rabbitmq
linux·服务器·rabbitmq
阿正的梦工坊21 小时前
RabbitMQ 消息队列详解:从原理到实战
分布式·rabbitmq
Thanks_ks2 天前
消息队列的进阶修炼:从 “不可靠交付” 到 “分布式最终一致性”
消息队列·rabbitmq·rocketmq·分布式事务·微服务架构·分布式系统·最终一致性
程序员雷欧2 天前
趣享社项目实战:同步 + 异步双模式内容审核与 RabbitMQ 可靠投递深度解析
rabbitmq
逆境不可逃3 天前
Hello-Agents 第二部分-第六章:框架开发实践
java·人工智能·分布式·学习·架构·rabbitmq
徐子童3 天前
RabbitMQ---开篇
rabbitmq