云消息队列 RabbitMQ 版支持实例在升降配中更改部署架构,可以实现共享集群与独享集群之间的相互转化。本文将为您介绍升降配时限制条件及其可能产生的影响。
共享和独享实例
云消息队列 RabbitMQ 版各系列实例部署架构如下所示:
系列 | 共享实例 | 独享实例 |
预付费系列 | 专业版、企业版 | 铂金版 |
Serverless系列 | 共享 | 独享 |
限制条件
不同系列的实例不支持相互转换,同一系列实例内的不同规格支持平滑升降配。
对于一些创建较早的预付费实例,在升/降配时可能会出现错误,如遇到无法升/降配的情况,请提交工单进行咨询。
只有实例处于服务中状态,才能执行变配操作。
共享版实例不支持直接修改认证方式,也不支持通过升配变更为支持开源身份认证的独享版或 Serverless 版。若需使用开源身份认证功能,必须重新购买新的独享版(Serverless)实例,建议先创建新实例验证业务后再释放旧实例。
不同部署架构(如共享与独享)之间仅支持同系列内的规格升降配,不支持跨系列或跨认证体系的直接转换。
迁移过程
实例在转化中涉及到以下几个方面的迁移:
集群迁移
升配
实例从共享集群迁移到独享集群,会触发新建集群,并将其作为目标集群进行迁移。
降配
实例从独享集群迁移到共享集群,则会直接把共享集群作为目标集群进行迁移。
存储迁移
双写双读阶段:读写路由在目标集群建立,此时源集群和目标集群均可读可写。
单写双读阶段:源集群不再写入,但可以读取,此时源集群可读、目标集群可读可写。
等待源集群消费完成阶段:等待源集群消费完成。如果源集群存在堆积等待被消费或者未到期的定时消息,该阶段持续时间会比较长。
目标集群单写单读阶段:当源集群中的消息都被消费完成后,源集群也不再写入和读取,所有的发送和消费都走目标集群,此时迁移完成。
连接迁移
VPC接入点/公网接入点
共享集群迁移到独享集群
服务端不会主动进行连接迁移。实例迁移发起后,所有新建的连接都会直接连接到目标集群,但在迁移前的存量连接(源集群上已存在的连接)服务端不会主动断开。如果希望所有连接都连接到新集群,可以重启应用进行重连。
独享集群迁移回共享集群
由于独享集群需要回收,服务端会主动断开在源集群上的存量连接,在客户端配置自动重连情况下,将主动重连到目标集群,完成连接迁移。
终端接入点(PrivateLink)
所有使用终端接入点的连接在实例迁移阶段会出现分钟级别的断连。
迁移影响
独享集群迁移回共享集群时,连接会主动断开。建议应用在业务低峰期进行迁移,同时做好重连机制。有关重连配置,请参见客户端配置自动重连。
对于使用VPC接入点/公网接入点的连接,在共享集群迁移到独享集群时,存量连接迁移会在应用重启或者服务端重启(比如源集群升级场景)后重连到目标集群,此时源集群的升级等行为可能会使得连接非预期的断开,如需完全切换到目标集群,建议低峰期自行重启应用完成重连。
对于使用终端接入点(PrivateLink)的连接,在实例迁移阶段会出现分钟级别的断连,建议应用在业务低峰期进行迁移,同时做好重连机制。
如果源集群中存在待消费的堆积消息或未到期的定时消息,存储迁移阶段的持续时间将会较长。
FAQ
RabbitMQ 实例从专业版升配到企业版有哪些注意事项?
操作入口确认:在实例控制台右上角检查是否有升配按钮。若有升配按钮,则表示该实例支持升配操作。
操作时机:建议在业务低峰期执行升配操作,以降低对业务的影响。
连接稳定性:升配通常不会导致连接闪断,但建议在应用代码层做好自动重连机制,以防万一。有关重连配置,请参见自动重连配置。
配置保留:升配仅提升资源上限,不会重置任何配置。升配完成后,原有的 Queue、Vhost 等元数据配置保持不变,接入地址(VPC 接入点、公网接入点)也不会改变。