RabbitMQ-数据持久化

一、持久化类型

1、交换机持久化(SpringAMQP默认)

2、队列持久化(SpringAMQP默认)

3、消息持久化

二、消息持久化

1、纯内存操作

如果采用纯内存操作,那么消息存储达到队列的上限之后,会有一个page out操作,这个操作是将队列中已经有的一部分MQ消息转移到磁盘,给队列腾出空间,使得队列能够继续接收MQ消息,这个转移MQ消息的过程是一个阻塞的过程,转移过程中,队列无法接收MQ消息。

2、持久化消息

SpringAMQP默认采用这种方式,这种方式需要将MQ消息入队的同时,也写一份进入到磁盘中,但是与Page out操作有一定区别,不会阻塞;当队列满了之后,会有一次清空内存的操作,这个操作会使得队列接收消息变慢,但是不至于阻塞。

3、LazyQueue

惰性队列,消息直接写入到磁盘,内存中会保留最近的一部分消息,很少的一部分;当消费者需要消息时,才会到到磁盘中去读取;3.12版本之后,队列都是LazyQueue的模式,无法更改。

相关推荐
Frostnova丶8 小时前
LeetCode 190.颠倒二进制位
java·算法·leetcode
闻哥9 小时前
Redis事务详解
java·数据库·spring boot·redis·缓存·面试
hrhcode9 小时前
【Netty】五.ByteBuf内存管理深度剖析
java·后端·spring·springboot·netty
道亦无名9 小时前
aiPbMgrSendAck
java·网络·数据库
发现你走远了10 小时前
Windows 下手动安装java JDK 21 并配置环境变量(详细记录)
java·开发语言·windows
心 -10 小时前
java八股文DI
java
黎雁·泠崖10 小时前
Java常用类核心详解(一):Math 类超细讲解
java·开发语言
大尚来也10 小时前
跨平台全局键盘监听实战:基于 JNativeHook 在 Java 中捕获 Linux 键盘事件
java·linux
追随者永远是胜利者10 小时前
(LeetCode-Hot100)15. 三数之和
java·算法·leetcode·职场和发展·go
懒惰成性的11 小时前
12.Java的异常
java·开发语言