TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网产品结构RabbitMQ03死信-延迟队列脑图思维导图

RabbitMQ03死信-延迟队列脑图思维导图

  收藏
  分享
免费下载
免费使用文件
灰色と青 浏览量:72023-11-30 19:58:45
已被使用0次
查看详情RabbitMQ03死信-延迟队列脑图思维导图

死信队列实现与延迟队列内容讲解

树图思维导图提供 RabbitMQ03死信-延迟队列脑图 在线思维导图免费制作,点击“编辑”按钮,可对 RabbitMQ03死信-延迟队列脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:94453bff0ac84fbb2657ddebec01a432

思维导图大纲

RabbitMQ03死信-延迟队列-可靠性投递思维导图模板大纲

RabbitMQ死信队列

在实际开发项目是,较为重要的业务, 需要确保未被消费的消息不能被丢弃,eg:订单业务

当消息消费发生异常时,将消息投入到死信队列中进行处理

死信队列

RabbitMQ中并不是直接声明一个公共的死信队列,然后死信消 息就会跑到死信队列中

而是为每个需要使用死信的消息队列配置一个死 信交换机,当消息成为死信后,可以被重新发送到死信交换机,然后再发 送给使用死信的消息队列。

死信交换机

英文缩写:DLX 。Dead Letter Exchange(死信交换机)

死信交换机其实就是普通的交换机,通过给队列设置参数: x-dead-letterexchange 和x-dead-letter-routing-key,来指向死信交换机

图解

死信

RabbitMQ规定 消息符合以下某种情况时,将会成为死信

队列消息长度达到限制(队列消息个数限制)

消费者拒绝消费消息,

basicNack

basicReject

并且不把消息重新放回原目标队列

原队列存在消息过期设置,消息到达超时时间未被消费

死信消息会被RabbitMQ特殊处理,如果配置了死信队列,则消息会被丢到 死信队列中,如果没有配置死信队列,则消息会被丢弃

死信队列实现

引入依赖

创建application.yml进行配置

创建配置类

创建controller生产者

创建普通广播模式消费者Listener

创建死信消费者Listener

过期时间

过期时间+死信队列也可以实现延迟队列操作

在RabbitMQConfiguration配置类中设置过期时间

队列消息长度限制

在RabbitMQConfiguration配置类中设置队列能存放消息的个数

RabbitMQ延迟队列

延迟队列简介

延迟队列,即消息进入队列后不会立即被消费,只有到达指定时间后,才 会被消费

RabbitMQ中没有延迟队列,但是可以用

ttl+死信队列方式

延迟插件

ttl+死信队列

延迟插件

使用延迟插件时,只需要声明一个 x-delayed-message 类型的交换器

config

controller

listener

RabbitMQ消息可靠性投递

RabbitMQ消息可靠性投递主要从三方面考虑

生产阶段

RabbitMQ生产者保证消息不丢失,主要是保证生产者可以尽量100%的将 消息发送给RabbitMQ。

生产者保证消息不丢失有两种方式:事务和Confirm。

RabbitMQ事务

txSelect() txCommit() txRollback()

发送方消息确认机制(Confirm模式)

. 同步方式

. 异步方式

存储阶段

exchange持久化

第三个参数true表示这个exchange持久化

queue持久化

第二个参数true表示这个queue持久化。

message持久化

MessageProperties.PERSISTENT_TEXT_PLAIN表示这条消息持久化。

消费阶段

消息入库(消息补偿)

如果RabbitMQ收到消息还没来得及将消息持久化到硬盘时,RabbitMQ挂 了,这样消息还是丢失了,或者RabbitMQ在发送确认消息给生产端的过程 中,由于网络故障而导致生产端没有收到确认消息,这样生产端就不知道 RabbitMQ到底有没有收到消息,这样也不太好进行处理。所以为了避免 RabbitMQ持久化失败而导致数据丢失,我们自己也要做一些消息补偿机 制,以应对一些极端情况。

思维导图模板大纲

相关思维导图模板

外科休克思维脑图思维导图

树图思维导图提供 外科休克思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 外科休克思维脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:57a4859ddd5cb029d04a41e4a461013e

Kubernetes各小组件及功能脑图思维导图

树图思维导图提供 Kubernetes各小组件及功能脑图 在线思维导图免费制作,点击“编辑”按钮,可对 Kubernetes各小组件及功能脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:a0b4b67da9c5a2c14d6f0407da802125