【RabbitMQ #10】 | MQ可靠性

发布时间:2026/9/30 21:04:25
【RabbitMQ #10】 | MQ可靠性 MQ 服务端的可靠性问题背景默认情况下RabbitMQ 收到消息优先放在内存降低收发延迟。带来两个问题MQ 宕机重启内存中的消息直接丢失docker restart mq复现内存容量有限消费者故障 / 消费慢消息大量积压触发 pageoutMQ 会阻塞。 MQ 底层会把老旧消息刷到磁盘释放内存但刷盘过程会阻塞 MQ。解决方案数据持久化 Lazy Queue1. 数据持久化RabbitMQ 持久化分为三部分交换机持久化队列持久化默认 durable消息持久化发送消息设置delivery_mode 2delivery_mode1临时消息存在内存重启丢失delivery_mode2持久消息写入磁盘特点开启生产者确认后持久化需要等待磁盘写入完成才返回 ACK速度会变慢但不会出现 pageout 阻塞问题。2. Lazy Queue惰性队列3.6 版本引入3.12 版本之后所有队列默认都是 LazyQueue机制消息到达队列后直接存入磁盘不优先放内存消费者消费时才从磁盘加载到内存优势支持百万级海量消息堆积写盘性能高避免 pageout 阻塞问题RabbitMQ 如何保证消息的可靠性总结首先通过配置可以让交换机、队列、以及发送的消息都持久化。这样队列中的消息会持久化到磁盘MQ 重启消息依然存在。RabbitMQ 在 3.6 版本引入了 LazyQueue并且在 3.12 版本后会称为队列的默认模式。LazyQueue 会将所有消息都持久化。开启持久化和生产者确认时RabbitMQ 只有在消息持久化完成后才会给生产者返回 ACK 回调。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询