一、什么是异地多活
"异地多活"是一种分布式系统架构的设计理念,它主要指的是在不同的地理位置部署多套相同的生产系统,这些系统都是实时对外提供服务的。这样做的核心目的是为了提高系统的可用性、容灾能力和弹性。
二、异地多活特点
- 地理分布:系统分布在多个地理位置,通常相隔较远,以减少自然灾害、地区性网络故障等对服务的影响。
- 数据同步:各个站点间需要实时数据同步,确保每个站点上的数据尽量是最新的,并实现最终一致性。
- 负载均衡:通过负载均衡技术,在用户访问时智能分配请求到各个站点,保证资源的有效利用,避免长距离调用。
- 故障切换与恢复:任何一个站点发生故障时,能够快速自动或手动将流量切换到其他正常运行的站点,且在故障修复后能够平滑地切回,实现业务不中断或最小中断。
- 服务自治:每个站点都是相对独立的服务单元,拥有闭环的业务服务能力,跨机房服务调用尽量避免使用且不影响核心业务流程。
三、异地多活挑战
-
数据一致性:异地多活需要在多个中心下维护数据的一致性。这需要保证非常好的数据实时同步,对稳定性和延迟有较高要求。
-
运维复杂度:多活架构增加了系统的复杂性,包括但不限于监控、故障转移、容量规划、数据分片、服务治理等方面。
-
业务闭环:原有的单中心业务逻辑可能不适应多活架构,需要对业务代码进行改造,以支持跨数据中心的事务处理、数据路由、负载均衡等。
-
容灾与故障恢复:虽然多活架构提高了系统的容灾能力,但同时也带来了更复杂的容灾设计和故障切换机制的挑战,确保在任何数据中心发生故障时,服务能无缝切换而不影响用户。
四、后续
1、异地多活 - 业务闭环的基本原则(2)
2、异地多活 - 数据层同步方案探究(3)
3、异地多活 - 业务改造与特例(4)