MySQL 8.4 Release Notes
20.1.4.3 容错
MySQL Group Replication基于 Paxos 分布式算法的实现,提供了服务器之间的分布式协调。因此,它需要大多数服务器保持活动状态,以达到 quorum 并做出决策。这对系统能够容忍故障的数量产生直接影响。需要容忍f
故障的服务器数量(n)是n = 2 x f + 1
。
在实际应用中,这意味着要容忍一个故障,组必须有三个服务器。因此,如果一个服务器故障,那么仍然有两个服务器可以形成多数(二出三),允许系统自动继续做出决策和进度。但是,如果第二个服务器故障非自愿,那么组(剩下一个服务器)将阻塞,因为没有多数可以达到决策。
以下是一个小表,展示了上述公式。
组大小 |
多数 |
瞬时故障容忍数量 |
---|---|---|
1 |
1 |
0 |
2 |
2 |
0 |
3 |
2 |
1 |
4 |
3 |
1 |
5 |
3 |
2 |
6 |
4 |
2 |
7 |
4 |
3 |