tencent cloud

消息队列 RabbitMQ 版

动态与公告
新功能发布记录
公告
产品简介
TDMQ 产品系列介绍与选型
什么是消息队列 RabbitMQ 版
产品优势
应用场景
开源托管版与 Serverless 版差异说明
开源版本支持说明
与开源 RabbitMQ 对比
高可用
使用限制
RabbitMQ 相关概念
开区地域
相关云服务
产品计费
计费概述
价格说明
计费示例
按小时付费转包年包月
续费说明
查看消费明细
欠费说明
退费说明
快速入门
入门流程指引
步骤1:准备工作
步骤2:创建 RabbitMQ 集群
步骤3:配置 Vhost
步骤4:使用 SDK 收发消息
步骤5:查询消息
步骤6:销毁资源
用户指南
使用流程指引
配置账号权限
创建集群
配置 Vhost
连接集群
管理消息
配置高级特性
管理集群
查看监控和配置告警
实践教程
实践教程使用说明
RabbitMQ 客户端实践教程
RabbitMQ 消息可靠性实践教程
RabbitMQ 支持 MQTT 协议说明
迁移集群
迁移方案概述
步骤1:购买云上实例
步骤2:迁移元数据上云
步骤3:开启双读写
API 参考(开源托管版)
API 概览
API 参考(Serverless 版)
History
Introduction
API Category
Making API Requests
Relevant APIs for RabbitMQ Serverless PAAS Capacity
RabbitMQ Serverless Instance Management APIs
Data Types
Error Codes
SDK 文档
SDK 概述
Spring Boot Starter 接入
Spring Cloud Stream 接入
Java SDK
Go SDK
Python SDK
PHP SDK
安全与合规
权限管理
网络安全
删除保护
变更记录
云 API 审计
常见问题
服务等级协议
联系我们

配置 RabbitMQ 持久化

PDF
聚焦模式
字号
最后更新时间: 2026-01-04 15:30:30
RabbitMQ 默认将消息存储在内存中,一旦节点宕机或重启,这些消息就会丢失。
为了防止这种情况,RabbitMQ 提供了持久化功能,可以将消息保存到磁盘上,确保即使服务器出现问题,消息也不会丢失。持久化包括三个方面:Exchange 持久化、Queue 持久化和 Message 持久化。
开启消息持久化后,消息会同时存储在内存和磁盘上。只有当内存不足时,RabbitMQ 才会将部分消息从内存移除,仅保留在磁盘中。需要注意的是,持久化会降低 RabbitMQ 的性能,因为磁盘读写速度比内存慢得多。这与惰性队列不同,惰性队列是直接将消息写入磁盘,而不是同时在内存和磁盘中保存。

约束与限制

非持久化的 Queue、Exchange 在服务重启之后会丢失,需要重新创建。
未标记持久化的消息在服务中断后会消失,即使声明为持久化的消息,如果在写入磁盘过程中发生服务中断,仍可能丢失,只有成功持久化到磁盘的消息才能在重启后恢复。
仅开源托管版集群需要配置持久化,Serverless 版本集群默认开启持久化,无需配置。

配置 Exchange 持久化

在创建 Exchange 时,在参数配置中开启 Durable。具体步骤请参考创建 Exchange


配置 Queue 持久化

在创建 Queue 时,在基本信息中开启 Durable。具体步骤请参考创建 Queue


配置 Message 持久化

当 Queue 设置为持久化后,可以在客户端向 Queue 发送持久化消息。
以下为一个 Java 客户端示例,通过设置MessageProperties参数为PERSISTENT_TEXT_PLAIN来实现。
import com.rabbitmq.client.MessageProperties;
channel.basicPublish("", "test_queue",MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes());


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈