RabbitMQ-数据持久化

一、持久化类型

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

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

3、消息持久化

二、消息持久化

1、纯内存操作

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

2、持久化消息

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

3、LazyQueue

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

相关推荐
毕设源码-邱学长28 分钟前
【开题答辩全过程】以 基于SpringBoot的医院血库管理系统设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
菠菠萝宝33 分钟前
【Java手搓RAGFlow】-9- RAG对话实现
java·开发语言·人工智能·llm·jenkins·openai
清风徐来QCQ1 小时前
Spring Boot 静态资源路径映射
java·spring boot·后端
科威舟的代码笔记1 小时前
第10讲:Stream实战与陷阱——综合案例与最佳实践
java·开发语言
程序定小飞1 小时前
基于springboot的体育馆使用预约平台的设计与实现
java·开发语言·spring boot·后端·spring
zl9798991 小时前
RabbitMQ-延迟队列
分布式·rabbitmq
5***79001 小时前
Java虚拟现实开发
java·开发语言·vr
计算机毕业设计小途1 小时前
计算机毕业设计推荐:基于SpringBoot的水产养殖管理系统【Java+spring boot+MySQL、Java项目、Java毕设、Java项目定制定做】
java·spring boot·mysql
养乐多07221 小时前
【Java】异常
java·开发语言
2***57422 小时前
Java数据分析实战
java·python·数据分析