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

实现

相关推荐
zyh2005043015 小时前
RabbitMQ概述
分布式·消息队列·rabbitmq·消息中间件·amqp
武子康17 小时前
Java-164 MongoDB 认证与权限实战:单实例与分片集群 整体认证配置实战 最小化授权/错误速查/回滚剧本
java·数据库·分布式·mongodb·性能优化·系统架构·nosql
斯普信专业组18 小时前
rabbitmq-k8s下双架构镜像+手动sts部署完全文档(上)
架构·kubernetes·rabbitmq
大G的笔记本19 小时前
Redis 分布式锁如何保证同一时间只有一个客户端持有锁
数据库·redis·分布式
斯普信专业组20 小时前
rabbitmq-k8s下双架构镜像+手动sts部署完全文档(下)
架构·kubernetes·rabbitmq
飞鱼&21 小时前
Kafka(文件)数据存储、清理机制、高性能设计
分布式·kafka
herobrineAC7891 天前
Hyperopt 强大的分布式参数优化框架全解析
分布式·其他
明达智控技术1 天前
MR30系列分布式I/O在造型机产线的应用
分布式·物联网·自动化
Moniane1 天前
A2A+MCP构建智能体协作生态:下一代分布式人工智能架构解析
人工智能·分布式·架构
爱敲键盘的猴子1 天前
MQ高级 -- RabbitMQ
rabbitmq