Content #
比较典型的分布式数据库部署模式是两地三中心五副本。这种模式下,每个分片都有 5 个副本,在同城的双机房各部署两个副本,异地机房部署一个副本。
这个模式有三个特点:
- 异地备份
保留了“异地容灾”模式下的数据同步功能,但因为同样要保证低延迟,所以也做不到 RPO(Recovery Point Objective) (恢复点目标)为零。
- 容灾能力
如果同城机房有一个不可用或者是同城机房间的网络出现故障,异地机房节点的投票就会发挥作用,依然可以和同城可用的那个机房共同达成多数投票,那么数据库的服务就仍然可以正常运行,当然这时提交过程必须要异地通讯,所以延迟会受到一定程度影响。
- 同城访问低延迟
由于 Raft 或 Paxos 都是多数派协议,那么任何写操作时,同城的四个副本就能够超过半数完成提交,这样就不会因为与异地机房通讯时间长而推高数据库的操作延迟。
两地三中心虽然可以容灾,但对于异地机房来说 RPO 不为零,在更加苛刻的场景下,仍然受到挑战。这也就催生了三地五副本模式,来实现 RPO 为零的城市级容灾。