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

实现

相关推荐
加油,旭杏3 小时前
【Redis】服务端高并发分布式结构
数据库·redis·分布式
信徒_5 小时前
Kafka 回溯消费
分布式·kafka
郭涤生9 小时前
Chapter 11: Stream Processing_《Designing Data-Intensive Application》
笔记·分布式
惊醒幡然113 小时前
消息队列之-Kafka
分布式·kafka
kill bert13 小时前
第30周Java分布式入门 消息队列 RabbitMQ
java·分布式·java-rabbitmq
陈平安Java and C14 小时前
RabbitMQ高级特性2
rabbitmq
程序员 小柴18 小时前
RabbitMQ的工作模式
分布式·rabbitmq·ruby
蒋星熠18 小时前
在VMware下Hadoop分布式集群环境的配置--基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置
大数据·linux·hadoop·分布式·ubuntu·docker
小样vvv19 小时前
【分布式】微服务系统中基于 Hystrix 的熔断实现方案
分布式·hystrix·微服务