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 版实践教程RabbitMQ 消息可靠性实践教程

RabbitMQ 消息可靠性实践教程

PDF
聚焦模式
字号
最后更新时间: 2026-01-04 15:32:34

持久化

为了确保队列元数据和队列中的消息在 Broker 重启后不丢失,建议将队列设置为 durable、消息设置为 persistent,这样队列在接收到消息后会立即将其持久化到磁盘上。
非持久化的消息会占用更多的内存,可能导致服务端内存负载过高。建议将交换机设置为 durable,避免 Broker 启动后元数据丢失。

发送端 Confirm

Confirm 机制可以确保消息被成功地发送到 Broker。但如果发送消息时不设置 mandatory,无论消息是否成功路由到目标队列,Broker 都会回应 confirm 给发送端。如果设置了 mandatory(延迟交换机不支持设置 mandatory),消息无法路由时 Broker 会将消息原路返回客户端,客户端可以通过实现 basic.return 的处理来感知这些无法路由的消息;消息可以成功路由到目标队列时,Broker 才会回应 confirm 给发送端。

消费端 Acknowledgement

消费端 ACK 机制可以确保客户端收到消息,提供了 at least once 级别的消费语义保证,确保消息被正确处理后才能被删除。但这也需要客户端做好幂等,避免重复消费消息引发错误,而且未被 ACK 的消息会堆积在内存中导致客户端和服务端内存占用增加。

开启镜像队列

镜像队列通过将队列数据复制到集群内其他 Broker 上来保证队列的高可用。配置镜像队列策略可能会增加 Broker 的启动时长和资源占用,但可以确保队列在单个 Broker 故障时仍处于可用状态,尽量确保不丢失消息。
配置镜像队列策略时,应避免设置 ha-sync-mode=automatic,该配置会引起服务端 Broker 重启后自动全量同步队列数据(无论队列数据是否被同步过)。如果同步的队列堆积数据过多,最终会导致 Broker 同步数据时间过长、持续占用内存资源等问题,且队列同步完成前队列处于不可用状态,对业务可用性、服务端稳定性都有严重影响。

帮助和支持

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

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

文档反馈