跨IDC的消息集群部署方案

一般的IDC集群部署都是单机房,但是有个很严重的问题,就是异地多活情况下,如何做跨IDC的消息数据同步。

需要明确的是,消息中间件的部署隐含了如下要求:

消息的写入必须是迅速的,但是消息的读取可以有一定延时。在设计上需要牢牢把握住这个宗旨。

假设部署两地四中心。A地 A1,A2机房 B地 B1,B2机房。

以下以rocketmq为例说明部署方式:

1. 对任意的topic,经过中间件修改后,真正的topic为city-topic。例如,A机房的业务服务器发送xx topic. 则实际发送的topic经过

消息客户端中间件修改后,实际发送给消息中间件的topic为A-xx,基于单元化改造后,对应的该消息的tag为passid。

2. 对于任意xx消息的接收方,连接所有消息中间件,接收全部以xx结尾的topic。例如:A-xx和B-xx消息均接收。如果做了单元化改造,接收的消息tag为本单元能处理的passid范围。例如:00-100.这样可以使用到消息的服务端过滤功能

3.本地机房消息服务器部署采用主备双写的模式。A机房的机器只接收A-为前缀的消息topic。B机房同理。这样做的目的是保证消息的写入仅在同城机房,写入速度快。

4.作为consumer端,可以消费A,B两个机房全部的xx为后缀的消息,消息的接收可以有一定的延时。

5.本质上是将全国的机房整体作为一个消息集群。这里需注意,为了达到这个目的,注册中心一定要是一个AP系统,决不能是一个

CP系统。CP系统超过一半机器不可用,就无法提供服务,为了CP系统的通信效率,一般并不进行跨多机房部署,一次不适合这种架构。rocketmq的nameserver本身就是一个AP系统,可以在全国多地部署,共同组成一个注册中心集群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值