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

步骤3:开启双读写

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

操作场景

本文介绍使用双写双消费方案,将旧的 RabbitMQ 集群的业务切换到腾讯云 RabbitMQ 集群的操作步骤。

前提条件

1. 已购买腾讯云 RabbitMQ 集群。
2. 已将旧 RabbitMQ 集群元数据迁移到腾讯云 RabbitMQ 集群。

操作步骤

1. 为新 RabbitMQ 集群添加新的消费者,准备消费新 RabbitMQ 集群的消息。
2. 为新 RabbitMQ 集群添加新的生产者,将生产流量逐步灰度切换到新集群,下线旧 RabbitMQ 集群的生产者,旧的消费者继续消费旧 RabbitMQ 集群中的消息。为了防止消息的重复或丢失,可以事先做好消息消费的幂等逻辑。
Tips 1:在旧集群的 RabbitMQ 社区管控台,确认自建集群的生产流量已经停止。
enter image description here


Tips 2:在旧集群的 RabbitMQ 社区管控台上,确认自建 RabbitMQ 集群的堆积消息在下降。
enter image description here


3. 检查原 RabbitMQ 集群是否有堆积的消息没有消费,确认旧的消费者消费完旧 RabbitMQ 集群的全部消息后,下线旧的消费者和旧 RabbitMQ 集群。完成整个数据流的迁移操作。
Tips:确认云上 RabbitMQ 集群的消息写入和消费,并确保消息无堆积。
enter image description here


注意:
如您没有按照上述顺序进行切换,如先切换生产者再切换消费者,可能导致消息丢失的情况。
切换剩余消费者之前,请确保原 RabbitMQ 集群中的消息已全部消费完,否则可能会导致消费遗漏。

可能存在的问题

顺序问题

由于集群切换,切换过程中,消息顺序问题无法保证,切换的过程中会导致局部乱序。

消息重复

理论上不会重复,极端情况下会发生,例如切换过程中,消费者消费了消息,但是还未给服务端(原 RabbitMQ 集群)ACK,这时会导致该消息进入重试队列导致重复消费。对消息做幂等处理逻辑可以规避这个问题。

消费延迟

读切换过程中,由于分区重新分配,需要进行队列和消费者客户端间的 rebalance,可能导致短暂的消费延迟现象。遇到该情况无需额外操作,切换完成后即可恢复。

帮助和支持

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

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

文档反馈