银行的核心系统对可用性和性能要求均非常严苛,所以一般都采用两地三中心部署模式。
其中:
- 同城两个主数据中心各自部署一套热备,平时两个中心同时在线提供服务,进行负载均衡
- 假如其中一个数据中心出现异常,则由另外一个数据中心临时独立提供所有服务,直到异常的数据中心修复
- 异地部署一套冷备,平时只用于批量数据查询与统计分析,在两个主数据中心都异常时,由冷备接管所有服务,直到任一主数据中心修复为止。
如下图所示:
其中左边两个数据中心为同城两个主数据中心,右边则是异地的冷备。
数据库备份上,在三中心间采用2+2+2的部署架构,采用虚拟机部署。生产中心作为主站点,建立本地主从架构,并将数据同步至同城中心与异地中心的从节点。也就是说,DC1中一主一从,DC2和DC3中各两从库,DC1和DC2中的所有写操作都会写到DC1中主库中,然后同步备份到DC1和DC2的5个从库中,异步备份到DC3的两个备库中。读取操作则各中心都访问自己的数据库。
当主库异常,则按如下顺序查找一个可用的库作为新的主库:
DC1-DB1 => DC2-DB1 => DC1-DB2 => DC2-DB2
只有同城两个中心的库都异常(一般是灾难情况)才会启用异地DC3的服务和数据库。