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

实现

相关推荐
小钟不想敲代码4 分钟前
RabbitMQ高级
分布式·rabbitmq
Francek Chen12 分钟前
【大数据基础】大数据处理架构Hadoop:02 Hadoop生态系统
大数据·hadoop·分布式·hdfs·架构
Thomas21432 小时前
spark view永久保存 + paimon对应的view
大数据·分布式·spark
_codemonster2 小时前
分布式深度学习训练框架Horovod
人工智能·分布式·深度学习
小楼v2 小时前
消息队列的核心概念与应用(RabbitMQ快速入门)
java·后端·消息队列·rabbitmq·死信队列·交换机·安装步骤
小北方城市网2 小时前
SpringBoot 全局异常处理最佳实践:从混乱到规范
java·spring boot·后端·spring·rabbitmq·mybatis·java-rabbitmq
Knight_AL2 小时前
RabbitMQ + Flink 为什么必然会重复?以及如何用 seq 做稳定去重
flink·rabbitmq·ruby
❀͜͡傀儡师3 小时前
全新分布式ID组件TSID支持N种数据类型
分布式
乌恩大侠3 小时前
【AI-RAN 调研】软银株式会社的 “AITRAS” 基于 Arm 架构的 NVIDIA 平台 实现 集中式与分布式 AI-RAN 架构
人工智能·分布式·fpga开发·架构·usrp·mimo
alonewolf_993 小时前
ZooKeeper ZAB协议源码深度剖析:从理论到实践的分布式一致性指南
分布式·zookeeper