SpringBoot 消息队列RabbitMQ 消息可靠性 数据持久化 与 LazyQueue

介绍

在默认情况下,RabbitMQ会将接收到的信息保存在内存中以降低消息收发的延迟

  • 一旦MO宕机,内存中的消息会丢失
  • 内存空间有限,当消费者故障或处理过慢时,会导致消息积压,引发MQ阻塞

在消息队列运行的过程中,出现问题导致服务的重启等都回造成信息的丢失。这时候就需要去持久化即使重启了没消费完的数据也不会丢失。

交换机持久化

在创建交换机时应该选择持久化交换机,否者就是临时交换机重新启动会就没了。

队列持久化


使用LazyQueue可以让数据持久化的性能更加的好


LazyQueue介绍

从RabbitMQ的3.6.0版本开始,就增加了LazyQueue的概念,也就是惰性队列。

  • 接收到消息后直接存入磁盘而非内存(内存中只保留最近的消息,默认2048条)
  • 消费者要消费消息时才会从磁盘中读取并加载到内存支持数百万条的消息存储
  • 支持数百万条的消息存储

在3.12版本后,所有队列都是LazyQueue模式,无法更改

相关推荐
无问8178 分钟前
数据结构-排序(冒泡,选择,插入,希尔,快排,归并,堆排)
java·数据结构·排序算法
customer0828 分钟前
【开源免费】基于SpringBoot+Vue.JS在线文档管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
Flying_Fish_roe1 小时前
Spring Boot-版本兼容性问题
java·spring boot·后端
程序猿进阶1 小时前
如何在 Visual Studio Code 中反编译具有正确行号的 Java 类?
java·ide·vscode·算法·面试·职场和发展·架构
slandarer1 小时前
MATLAB | R2024b更新了哪些好玩的东西?
java·数据结构·matlab
Dola_Pan1 小时前
Linux文件IO(一)-open使用详解
java·linux·dubbo
摇滚侠1 小时前
spring cxf 常用注解
java·后端·spring
路ZP1 小时前
网络编程的应用
java
许野平2 小时前
Rust:Result 和 Error
开发语言·后端·rust·error·result
xcx0032 小时前
快充协议方案,Type-C接口受电端Sink取电快充协议芯片
zookeeper·rabbitmq·flume·memcached·storm