云消息队列 RocketMQ 版支持Global Replicator功能,能够实现跨地域及跨实例的消息和消费进度同步。本文将介绍Global Replicator特性等信息。
功能简介
Global Replicator为您提供跨地域、跨实例的消息和消费进度同步能力,支持开源和商业集群的数据同步、异地灾备、异地多活等场景需求。
跨地域数据同步
支持在不同地域集群间实现消息与消费进度的同步,满足全球业务场景下低时延和高可用性的需求。
跨实例无缝集成
兼容开源和商业RocketMQ集群,可灵活同步消息和消费进度,实现混合云或多云架构下的数据流动。
支持多种消息类型
支持普通、顺序、定时/延时和事务消息的同步。
支持消息和消费进度的同步
在源实例故障时,支持一键更新消费进度,将目标实例Group的当前消费进度更新到源实例的当前消费进度,降低重复消费的消息数量。
支持单向和双向任务
双向同步任务默认具备防止数据循环同步能力。
Global Replicator会占用云消息队列 RocketMQ 版的读、写性能,当使用Global Replicator能力时,请做好计算规格的评估。
图1.云消息队列 RocketMQ 版消息同步结构示意
应用场景
Global Replicator中所有集群均是独立的实例,具备读、写服务。实例之间通过异步的方式完成消息数据的同步,可满足如下应用场景:
数据同步(单向同步)
单元(独立的业务环境)内业务就近处理,无需跨网络的数据访问,降低因网络带来的时效性问题。通过Global Replicator的跨地域,跨实例(支持开源和商业集群)的单向同步能力实现数据同步,接收数据的中心地域可针对同步上来的数据做统一的数据处理。
典型行业:银行、证券、保险等。
多单元+1中心架构。
图2.云消息队列 RocketMQ 版数据汇聚架构
异地灾备(单向同步)
通过Global Replicator的单向同步能力实现跨地域、跨实例(支持开源和商业集群)高可用,提升数据安全性和系统可用性。当发生机房或地域级别故障时,可以快速恢复业务。
典型行业:通用。
两地两中心架构。
图3.云消息队列 RocketMQ 版异地灾备架构
正常情况下,备地域/中心的应用无需运行,降低资源消耗,节省成本。当异常发生时,启动备地域/中心的应用,通过云消息队列 RocketMQ 版实例的重置消费位点能力,将源尽可能少的消费历史消息数据。消息需做好幂等处理,降低消费重复带来的业务影响。
异地多活(双向同步)
当业务进行单元化拆分,同时又要尽可能保障业务的连续性,可以通过Global Replicator的双向同步能力来实现跨实例(支持开源和商业集群)、多地域间的高可用。
典型行业:金融,能源等涉及民生行业。
两地两中心架构。
图4.云消息队列 RocketMQ 版异地双向同步架构
通过Global Replicator做数据同步,同步过程中会对消息进行打标,生产应用无需额外的开发工作量,消费应用可根据云消息队列 RocketMQ 版提供的SQL92过滤方式,指定消费打标数据。
当发生异常时,业务自身保障,生产应用能够接管全量入口消息并投递到未发生异常的云消息队列 RocketMQ 版实例,消费应用通过配置变更修改过滤条件。通过云消息队列 RocketMQ 版实例的重置消费位点能力,尽可能少的消费其他地域的消息数据。消息需做好幂等处理,降低消费重复带来的业务影响。
技术架构
Global Replicator通过Connector完成异步消息同步机制实现跨地域数据同步,Connector具备分布式秒级扩缩容的弹性能力,并具备按照规则进行数据打标和断点续传的能力。跨地域间的网络通道采用企业网打通,实例间的消息数据都能保持同步且同步延迟都能够控制在秒级。
图5.云消息队列 RocketMQ 版跨地域数据同步架构
消息请求说明
Global Replicator中每个云消息队列 RocketMQ 版实例都是独立实例,具备读、写能力,应用访问某个实例由应用中配置的实例接入点Endpoint决定。消息数据在两个实例间同步时,会对消息数据打标(通过userproperty设置Key、Value),消费应用可根据业务需要,对消息数据进行过滤,决策接收消费全量数据或本地数据。如下图所示,使用与消费处理请参见使用说明。
图6.云消息队列 RocketMQ 版消息同步过程中对消息打标
优势
低代码开发:实例间的同步完全可以通过Global Replicator来实现,降低消息同步的代码开发工作量。
配置灵活:可配置实例之间单向/双向的消息数据同步,并可用Global Replicator完成消息数据的打标,方便业务侧灵活的选择数据处理的范围。
跨地域低延时同步:消息数据的同步能力技术选型采用事件总线EventBridge产品,高压力下全球同步延迟秒级,稳定性和弹性有保障。
费用说明
支持的地域和版本
地域:覆盖云消息队列 RocketMQ 版已开服的地域,具体请参见源集群与目标集群地域映射表。
版本:
云消息队列 RocketMQ 版4.0系列铂金版。
云消息队列 RocketMQ 版5.0系列专业版、铂金版。
支持云消息队列 RocketMQ 版铂金版与开源Apache RocketMQ集群构建同步关系。开源Apache RocketMQ的版本需要大于等于4.4.0版本。
一个云消息队列 RocketMQ 版实例支持与多个云消息队列 RocketMQ 版实例构建Global Replicator关系。