架构基础:从需求到架构
上QQ阅读APP看书,第一时间看更新

2.1.5 两地三中心容灾设计

两地三中心是一种容灾方案。在同一个城市或邻近的城市(如北京、天津)建立两个数据中心(Data Center,DC),由于距离较近,网络延迟低,因此数据几乎可以达到实时同步。当其中一个数据中心发生故障,如火灾、地震等毁灭性事故时,可以快速将服务切换到另外一个数据中心,保证服务可以短时间内恢复。

由于两个数据中心在邻近的城市,对于一些地震、洪水等不可抗力因素,可能会导致两个数据中心都不可用,因此可以在更远的位置再部署一个数据中心,只进行数据同步备份。例如,当北京、天津的数据中心都不可用时,可以使用上海的数据进行应用重建,如图2-15所示。

图2-15 两地三中心容灾架构

两地三中心容灾架构的特点是同一时间只有一个数据中心对外提供服务。如图2-16所示,北京和天津的两个数据中心内的服务保持完全相同,同时处于运行状态, 但是只有主数据中心(北京)对外提供服务,而从数据中心(天津)只是空跑而已。

图2-16 双中心灾备

在日常工作中,任何的系统发布(代码发布、数据库DDL、服务器环境配置等)都需要在两个数据中心执行,目的是确保环境完全一致。

数据库采用主从模式进行数据同步,保证双方数据一致,但是跨地区的数据同步会出现较大延迟,可以增加专线降低延迟程度。

将域名解析到北京机房,只让主数据中心对外提供服务。当主数据中心发生灾难不可用时,先将天津机房的从库升级为主库,然后将DNS解析到天津机房即可。

两地三中心模式,相当于做了一个数据中心级别的热备份;因为始终有一个数据中心处于闲置状态,无法充分利用,所以对成本存在极大的浪费。由于一个数据中心始终处于冷却状态(没有任何真实业务发生),当真正发生灾备切换时,并不一定能够正常运转起来,所以两地三中心只是看起来美好而已。

为了节省成本,可以只将核心业务做灾备,当发生灾难时优先保证企业或政府机构的核心业务可以正常运转。