RabbitMQ-数据持久化

一、持久化类型

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

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

3、消息持久化

二、消息持久化

1、纯内存操作

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

2、持久化消息

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

3、LazyQueue

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

相关推荐
毅炼16 分钟前
hot100打卡——day08
java·数据结构·算法·leetcode·深度优先
a努力。25 分钟前
国家电网Java面试被问:慢查询的优化方案
java·开发语言·面试
@小码农40 分钟前
202512 电子学会 Scratch图形化编程等级考试四级真题(附答案)
java·开发语言·算法
程序猿ZhangSir1 小时前
深入理解 BIO,NIO,AIO 三者的用途和区别?Select,poll,epoll 操作系统函数简介
java·spring·nio
智航GIS1 小时前
6.2 while循环
java·前端·python
2201_757830871 小时前
AOP核心概念
java·前端·数据库
为所欲为、Lynn1 小时前
用FastJson的Filter自动映射枚举
java·spring boot
qq_336313931 小时前
java基础-IO流(转换流)
java·开发语言·python
雪人.1 小时前
JavaWeb经典面试题
java·服务器·前端·java面试题
扶苏-su1 小时前
Java---IO流原理和分类
java·开发语言