容器下的两地三中心建设
1. 关于两地三中心
如上图,两地三中心的架构,是为了提高系统的容错、容灾的能力。当一个数据中心不可用时,能够将关键业务的流量切换到其他数据中心,可以抵御城市级的自然灾害。两地指的是,地理上不同的两座城市,而三中心指的是:
- 生产中心
- 同城灾备中心
- 异地灾备中心
- 机房间距离越短,容灾能力越差,但光纤会越短,延时会很低
- 公有云的 ELB 会卸载 TLS 证书,并提供一定的安全防护功能。
- 在机房中,使用虚拟机部署有一个 LB 服务,对流量进行切分,一部分流量被切分到了另外一个机房。两个机房的 LB 使用的是同一个存储后端。
- 两个机房的服务,分别响应不同用户的请求
- 镜像仓库
- Redis 多机房集群模式
- 两地三中心的要点,是要构建一个环形的互联互通机房网络
- 有状态应用采用虚拟机部署,无状态应用采用 Kubernetes 部署
- 访问流量,先通过 DNS 切分到机房,在机房中再通过 LB 切分到各个集群
3.1 为什么是异地机房承载流量
相较于国外使用 PostgreSQL,国内使用 MySQL 特别多。MHA(Master High Availability)是一套成熟的 MySQL 解决方案。在 MySQL 发生故障时,MHA 能在 30 秒以内完成数据库的故障切换操作,同时最大程度的保障数据一致性。
