消息队列-RabbitMQ-延时队列实现

死信队列

DLX,全称为Dead-Letter-Exchange,死信交换机,死信邮箱。当消息在一个队列中变成死信之后,它能重新发送到另外一个交换器中,这个交换器就是DLX,绑定DLX的队列就称为死信队列。

导致死信的几种原因:

● 消息被拒(Basic.Reject/Basic.Nack)且requeue = false

● 消息TTL(消息的存活时间)过期

● 队列满了,无法再添加

RabbitMQ实现延迟队列

RabbitMQ本身没有延迟队列,要实现延迟消息,一般有两种方式:

  1. 通过RabbitMQ本身队列的特性来实现,使用死信交换机和消息的存活时间TTL
  2. RabbitMQ3,5,7版本及以上提供了一个插件来实现延迟队列功能。
    AMQP协议以及RabbitMQ本身没有直接支持延迟队列的功能,但是可以通过TTL和DLX模拟出延迟队列的功能。

实现

相关推荐
m0_651593911 小时前
仓储系统核心编码设计与分布式ID生成实践
大数据·分布式
014-code1 小时前
RabbitMQ 生产端可靠投递(confirm、return、重试)
分布式·消息队列·rabbitmq
014-code1 小时前
RabbitMQ 消费端幂等实战(重复消息、去重、重放怎么处理)
分布式·消息队列·rabbitmq
jasnet_u2 小时前
kafka-3.8.0三节点集群(KRaft协议)
分布式·kafka
问道飞鱼2 小时前
【分布式技术】分布式对象存储服务RustFS
分布式·对象存储·rustfs
8Qi83 小时前
微服务通信:同步 vs 异步与MQ选型指南
java·分布式·微服务·云原生·中间件·架构·rabbitmq
redaijufeng4 小时前
SpringBoot中整合RabbitMQ(测试+部署上线 最完整)
spring boot·rabbitmq·java-rabbitmq
糖炒栗子03264 小时前
后端消息投递可靠性:基于 RabbitMQ 的“双重防线-幂等闭环”模式
java·后端·rabbitmq
jwt7939279376 小时前
RabbitMQ HAProxy 负载均衡
rabbitmq·负载均衡·ruby
鬼先生_sir20 小时前
RabbitMQ 全面解析(完整版)
分布式·rabbitmq