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

实现

相关推荐
神所夸赞的夏天1 小时前
RabbitMQ安装过程
分布式·rabbitmq
炸炸鱼.2 小时前
部署Zabbix企业级分布式监控:从零到实战(知识点大全)
分布式·zabbix
phltxy3 小时前
RabbitMQ 常见面试题
分布式·rabbitmq
小二·3 小时前
Redis 7 实战:缓存/消息队列/分布式锁生产级实现
redis·分布式·缓存
小程故事多_803 小时前
从初代架构到大模型时代,英伟达GPU底层架构演进与核心逻辑深度解析
java·人工智能·分布式·架构
半夜修仙4 小时前
RabbitMQ入门概述
java·rabbitmq·java-rabbitmq
Java 码思客4 小时前
【Redis分布式缓存实战】第3章 Redis核心机制深度解析
redis·分布式·缓存
码不停蹄的玄黓4 小时前
生产可用的 Redis 分布式锁完整实现
数据库·redis·分布式
Deep-w4 小时前
【MATLAB】微电网四DG逆变器下垂策略与分布式MPC协同控制仿真分析
开发语言·分布式·算法·matlab
周末也要写八哥5 小时前
项目简历:分布式Linux性能分析监控
分布式