消息队列-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模拟出延迟队列的功能。

实现

相关推荐
TE-茶叶蛋36 分钟前
秒杀压测计划 + Kafka 分区设计参考
分布式·kafka
青铜爱码士4 小时前
redis+lua+固定窗口实现分布式限流
redis·分布式·lua
啊喜拔牙6 小时前
如何搭建spark yarn模式的集群
大数据·分布式·spark
听雨·眠6 小时前
关于kafka
分布式·kafka·消息队列
TE-茶叶蛋6 小时前
NestJS + Kafka 秒杀系统完整实践总结
分布式·kafka
慧一居士7 小时前
Kafka批量消费部分处理成功时的手动提交方案
分布式·后端·kafka
搞不懂语言的程序员8 小时前
如何实现Kafka的Exactly-Once语义?
分布式·kafka·linq
ErizJ8 小时前
Golang|分布式索引架构
开发语言·分布式·后端·架构·golang
zcyf08099 小时前
kafka理论学习汇总
java·分布式·学习·kafka
xiaoxi66610 小时前
Dubbo实战:四步实现注册中心平滑迁移
分布式·nacos·dubbo·注册中心