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 审计
常见问题
服务等级协议
联系我们

配置镜像策略

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

操作背景

为了提高 RabbitMQ 集群的可靠性和容错能力,TDMQ RabbitMQ 版在用户新建 RabbitMQ 集群或者新建 Vhost 时(该集群节点数至少为3),提供开启“镜像队列”的选项。镜像队列可以在 RabbitMQ 集群中的多个节点上复制队列中的消息,确保在某个节点发生故障时,队列中的消息不会丢失,保证服务的可用性。

使用限制

TDMQ RabbitMQ 开源托管版只允许拥有3个或以上数量节点的集群开启“镜像队列”,主要是为了确保集群的高可用性和容错能力。
在一个拥有3个或更多节点的集群中,镜像队列可以在多个节点上复制消息,既可以分担每个节点的负载,提高性能,又可以在某个节点发生故障时保证服务的正常运行。同时,这也提供了更多的灵活性,允许我们根据实际需求灵活配置镜像队列的参数。因此,这个限制是为了提供更稳定、更可靠的服务。
TDMQ RabbitMQ Serverless 版暂不支持开启镜像队列。

默认镜像策略参数说明

开启镜像队列后,会在策略页签下生成一条默认镜像策略,您可以根据实际的业务场景和需求,进一步调整这些参数,也可以修改或者自定义新的镜像策略覆盖该条默认策略。
以下是消息队列 RabbitMQ 为用户提供的“默认镜像队列”策略参数详细说明:
参数名
配置参数
参数说明
Name
pay-mirror-policy
策略名称,用于标识和引用该策略。
Pattern
.*
策略的匹配模式,采用正则表达式语法。.表示匹配任意字符,*表示匹配前面的字符零次或多次,所以 .* 表示匹配任意名称的队列。
Apply to
Queues
策略的应用对象,设置为 Queues 表示策略应用于队列。
Priority
0
策略的优先级。如果一个队列匹配多个策略,那么优先级高的策略将会被优先应用,0 表示最低优先级。
ha-mode
exactly
镜像队列的复制模式。
exactly:表示队列的消息会被复制到指定数量的节点。
all:表示队列的消息会被复制到所有节点。
nodes: 表示在指定的节点上进行镜像,节点名称通过镜像参数指定。
选择 exactly 可以在保证可用性的同时,减少网络和存储的开销,提高性能。
ha-params
3
镜像队列的复制参数。当 ha-mode 设置为 exactly 时,这里需要设置复制的节点数量。默认设置为3,即使集群将来扩展到5个节点,性能仍然可以保持在一个较好的水平。
ha-promote-on-failure
always
节点故障时的镜像队列提升策略。
always 表示无论节点故障的原因如何,都会将镜像队列提升为主队列。
when-synced 表示只有当节点故障后重新同步时,才会将镜像队列提升为主队列。
默认设置为 always,以确保在任何故障情况下都能保持服务的可用性。
ha-promote-on-shutdown
when-synced
节点正常关闭时的镜像队列提升策略。
always:表示无论节点关闭的原因如何,都会将镜像队列提升为主队列。
when-synced:表示只有当节点关闭后重新同步时,才会将镜像队列提升为主队列。
默认设置为 when-synced,以避免不必要的提升操作。
ha-sync-mode
manual
镜像队列的同步模式。
automatic:表示在节点启动或重新连接到集群时,自动将镜像队列与主队列同步。
manual:表示需要手动触发同步操作,将镜像队列与主队列同步。
默认设置为 manual,以避免堆积消息时自动同步影响集群性能。

操作步骤

新建集群时开启镜像队列

新建集群时开启镜像队列:集群购买页 > 其他配置 > 开启镜像队列。开启后,会在名为 / 的默认 Vhost 的 基本信息 > 策略页面生成一条默认策略,该策略只对默认 Vhost 生效。


新建 Vhost 时开启镜像队列

新建 Vhost 时开启镜像队列:TDMQ RabbitMQ 版控制台 > 集群管理 > Vhost > 新建 > 开启镜像队列。开启后,会在对应 Vhost 的 基本信息 > 策略页面生成一条默认策略,该策略只对相应的 Vhost 生效。


为已存在的 Vhost 开启镜像队列

如果已创建的 Vhost 没有开启镜像队列,可以通过为 Vhost 创建镜像策略来开启。
另外,在新建集群时,若开启了镜像队列,在控制台策略页签下默认会有一条策略,您可以删除,也可以通过新建新的镜像策略覆盖该条默认策略:
2. 在左侧导航栏选择集群管理 > Vhost,选择好地域后,单击目标 Vhost 的 ID,进入基本信息页面。
3. 单击策略 > 新建策略,填写策略基本信息。
基本设置:
参数
说明
当前 Vhost
表示正在给哪个 Vhost 创建镜像策略
策略名称
填写策略名称,需符合命名规则:1-64个字符,只能包含数字、字母、“.”、“-”和“_”。
匹配模式
一个正则表达式,用来匹配相关的 Queue 或者 Exchange。常用匹配模式的正则表达式可参考:
.*:将匹配该 Vhost 下的所有 Queue 或者 Exchange。
^test.*:将匹配该 Vhost 下名称以“test”开头的所有 Queue 或者 Exchange。
.*test.*:将匹配该 Vhost 下名称包含“test”的所有 Queue 或者 Exchange。
.*test$:将匹配该 Vhost 下名称以“test”结尾的所有 Queue 或者 Exchange。
策略类型
选择 镜像策略
应用范围
用来指定当前 Policy 生效的范围。镜像策略仅支持在 Classic Queues 中生效。
优先级
定义策略的优先级。可选范围:[0,255],如果有多个策略作用于同一个 Queue,那么优先级数字最大的那个 Policy 才会生效。

策略定义:
参数
说明
镜像模式
镜像队列的模式,有效值为 all/exactly/nodes。
all:表示在集群中所有的节点上进行镜像。
exactly: 表示在指定个数的节点上进行镜像,节点的个数由镜像参数指定。
nodes: 表示在指定的节点上进行镜像,节点名称通过镜像参数指定。

镜像参数
镜像参数:表示消息将被同步到的节点。
当镜像模式选择 all 时,该项不用填。如果将队列镜像到集群所有节点上,可能会导致集群承受不必要的网络及磁盘I/O流量。
当镜像模式选择 exactly 时,镜像参数推荐选择 3,最多可以等于当前集群节点数,至少可以选择 1。可以在保证可用性的同时,减少网络和存储的开销,提高性能。
当镜像模式选择 nodes 时,镜像参数可按照节点名称,选到具体哪些节点,推荐选择 3 个节点。
消息同步方式
镜像队列中消息的同步方式,可选 automatic 或者 manual。
automatic:表示在节点启动或重新连接到集群时,自动将镜像队列与主队列同步。
manual:表示需要手动触发同步操作,将镜像队列与主队列同步。
默认设置为 manual,以避免堆积消息时自动同步影响集群性能。
主节点退出处理
当主节点优雅退出时,是否允许选举未同步的镜像为 master。
主节点故障处理
当主节点故障/失败时,是否允许选举未同步的镜像为 master。为保证可用性,建议保持为“允许选择所有镜像”。

4. 单击完成,完成策略创建,可以在策略列表看见已创建好的策略。









帮助和支持

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

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

文档反馈