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

介绍

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

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

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

交换机持久化

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

队列持久化


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


LazyQueue介绍

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

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

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

相关推荐
apcipot_rain9 小时前
C++转Java日记(02)
java·开发语言·c++
nice_lcj52010 小时前
【从零理解 Spring AI · 03】Spring AI 在 Spring 生态里的位置
java·spring boot·大模型·spring ai·ai应用开发
mldong10 小时前
同一个节点接力办几轮,流程才往下走:jeeflow 的后加签
后端·架构
量化分析码农10 小时前
【Python量化多因子实战 03】多因子怎么合成?等权、IC 加权与回归加权实测
后端
深蓝AI18 小时前
JWT 不是登录方案:三种登录态架构怎么选
后端
starzy199018 小时前
深入理解Scala Map:从实现原理到工程实践
开发语言·后端·scala
卷无止境19 小时前
凌晨三点的绿灯
后端
码农小河6620 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库
excel20 小时前
基于 GPT 的自动发布文章接口方案:从一句话或一张图片生成并发布内容
前端·javascript·后端
风若飞1 天前
Spring Ai 入门遇到问题1
java·后端·spring