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头,添加过期时间。
相关推荐
止语Lab2 天前
一次 goroutine 泄漏:pprof 说有 10 万个 goroutine,但问题不在 channel
rabbitmq
JLWcai2025100918 天前
铸造领域树脂砂轮|金利威多场景解决方案,20 + 配方覆盖全需求
mongodb·zookeeper·eureka·spark·rabbitmq·memcached·storm
风吹夏回18 天前
RabbitMQ 核心术语 + Python pika 方法完整讲解
分布式·python·rabbitmq
风吹夏回18 天前
RabbitMQ 三种模式入门:HelloWorld、WorkQueue、PubSub
分布式·rabbitmq·ruby
cheems952718 天前
[RabbitMQ高级特性] 消息确认机制:从 Ready / Unacked 到 basicAck、basicReject、basicNack 的底层拆解
分布式·rabbitmq·ruby
半夜修仙19 天前
延迟队列的介绍及常见问题
java·数据库·中间件·rabbitmq
Solis程序员19 天前
Raft:分布式系统的定海神针
java·分布式·kafka·rabbitmq·agent·raft
手握风云-19 天前
一条消息的旅程:RabbitMQ 学习与实践(一)
中间件·rabbitmq
Zyangxsir19 天前
RabbitMQ 核心概念以及Java(Spring Boot)实战用法的整理
java·spring boot·后端·rabbitmq·java-rabbitmq
南部余额20 天前
RabbitMQ 进阶:延迟队列完全指南
java·分布式·spring·rabbitmq