消息队列-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. TCP协议是安全的吗?

    2024-06-17 16:42:05       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-17 16:42:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-17 16:42:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-17 16:42:05       18 阅读

热门阅读

  1. Redis 分布式锁教程

    2024-06-17 16:42:05       7 阅读
  2. web前端开发前途:探索、挑战与无限可能

    2024-06-17 16:42:05       9 阅读
  3. Web前端遇到的难题:挑战与突破之路

    2024-06-17 16:42:05       7 阅读
  4. python学习:语法(2)

    2024-06-17 16:42:05       6 阅读
  5. CDN简介

    CDN简介

    2024-06-17 16:42:05      7 阅读
  6. Ubuntu插无线网卡后没反应-安装驱动

    2024-06-17 16:42:05       9 阅读
  7. 【AI原理解析】— 文心一言模型

    2024-06-17 16:42:05       5 阅读
  8. ansible常用模块

    2024-06-17 16:42:05       6 阅读
  9. 在Git上,提交记录有误,修改commit方法

    2024-06-17 16:42:05       6 阅读