阿里异地多活架构:99.99%高可用关键!

高可用是大型架构核心,下面我详解异地多活架构@mikechen

异地多活

异地多活 的核心是:多点同时服务。

比如:分布在不同城市(如上海、北京、深圳)的数据中心同时对外提供服务。

阿里异地多活架构:99.99%高可用关键!-mikechen

流量闭环:用户流量进入某个机房后。

其所有的计算、存储、网络交互尽量在该机房内完成,避免跨城市调用。

随时切换:任意一个机房挂掉。

其流量可以分钟级切换到其他机房,且业务无感知。

 

异地多活架构

阿里异地多活通常由多套物理或云上独立数据中心构成,每个数据中心在逻辑上承担完整业务能力。

核心组件包括:

阿里异地多活架构:99.99%高可用关键!-mikechen

边界路由与流量调度:基于DNS、全球负载均衡(GSLB)和智能调度策略,实现流量按需分发与故障切换。

分布式数据库与存储:采用分库分表、分布式事务或最终一致性设计,结合专门的跨地域复制(如日志复制、双写或CRDT等)保证数据可用性。

中间件与消息系统:支持跨域消息复制、幂等消费、顺序保证及延迟补偿机制。

控制平台与监控:统一的配置管理、链路追踪、故障注入与回滚能力,确保运维可观测与可控。

 

异地多活落地

如果一家企业要从单机房迈向异地多活,通常遵循以下路径:

阿里异地多活架构:99.99%高可用关键!-mikechen

第一步:业务梳理与改造
寻找分片键 (Sharding Key):90% 的互联网业务是“以用户为中心”的,所以 UserID 是最佳分片键。

分离全局数据:将无法切分的数据(如库存、配置、汇率)剥离出来,准备放入 Center Unit。

第二步:同城双活 (Same City Dual Active)
在同一个城市建立两个机房。

距离近(<50km),可以用光纤直连,延时 <1ms。

目的:验证应用层的单元化改造,暂时不用担心数据层的延迟问题。数据库可以做同步复制。

第三步:异地多活 (Multi-Region)
选址距离较远(>1000km)的城市(如北京-深圳)。

部署 DTS:解决长距离数据同步问题(异步复制)。

禁忌:严格禁止跨单元的事务。

第四步:流量调度演练
模拟某个城市光缆被挖断,在控制台一键修改路由规则,将属于该城市的 20% 流量瞬间切换到另一个城市。

评论交流
    说说你的看法