RabbitMQ-数据持久化

一、持久化类型

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

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

3、消息持久化

二、消息持久化

1、纯内存操作

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

2、持久化消息

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

3、LazyQueue

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

相关推荐
runfarther几秒前
Java变量作用域详解
java·开发语言
java1234_小锋1 分钟前
Java高频面试题:MyBatis与JPA有哪些不同?
java·开发语言·mybatis·jpa
gameboy0313 分钟前
【异常解决】Unable to start embedded Tomcat Nacos 启动报错
java·tomcat
gameboy0314 分钟前
Windows操作系统部署Tomcat详细讲解
java·windows·tomcat
fengxin_rou5 分钟前
黑马点评实战篇|第五篇:分布式锁-redission
java·数据库·redis·后端·缓存
tsyjjOvO6 分钟前
Spring 核心知识点全解析(续)
java·后端·spring
草履虫建模8 分钟前
面试常问 SQL 优化八股文总结:慢查询、索引失效、回表、覆盖索引一次搞懂
java·数据库·spring boot·sql·面试·职场和发展·数据库架构
旷世奇才李先生9 分钟前
043校园二手交易平台系统-springboot+vue
java·vue.js·spring boot
一叶飘零_sweeeet9 分钟前
Java 8→21 全链路架构升级指南:核心特性、底层演进与生产级兼容避坑全解
java
⑩-10 分钟前
SaaS-Admin-项目场景题
java·数据库·spring boot