RabbitMQ-数据持久化

一、持久化类型

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

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

3、消息持久化

二、消息持久化

1、纯内存操作

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

2、持久化消息

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

3、LazyQueue

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

相关推荐
努力发光的程序员19 小时前
互联网大厂Java面试:从Spring Boot到微服务架构
spring boot·缓存·微服务·消息队列·rabbitmq·spring security·安全框架
天殇凉19 小时前
AC自动机学习笔记
java·笔记·学习
TechTrek19 小时前
Spring Boot 4.0正式发布了
java·spring boot·后端·spring boot 4.0
飞梦工作室20 小时前
企业级 Spring Boot 邮件系统开发指南:从基础到高可用架构设计
java·spring boot·后端
haiyu柠檬20 小时前
在Spring Boot中实现Azure的SSO+VUE3前端配置
java·spring boot·后端
百***812720 小时前
【SpringBoot】SpringBoot中分页插件(PageHelper)的使用
java·spring boot·后端
百***864620 小时前
SpringBoot中自定义Starter
java·spring boot·后端
q***071420 小时前
VScode 开发 Springboot 程序
java·spring boot·后端
q***465220 小时前
Spring中使用Async进行异步功能开发实战-以大文件上传为例
java·后端·spring
q***385120 小时前
SpringCloud实战【九】 SpringCloud服务间调用
java·spring boot·spring cloud