参数group_replication_consistency共 5 个值可选:

1. EVENTUAL:确保最终一致性,并不能保证数据实时同步。(MySQL 8.0.14 之前只有这一个选项)

  优点:可以快速返回本节点已经成功应用的数据,不用等待所有的数据应用完成。

  缺点:可能返回的数据比较旧。

2. BEFORE:确保本地强一致性,并不保证其他节点数据实时同步。

  这类选项代表保证本地节点强一致性。也就是说设置为此选项的本地节点必须要等待中继日志数据全部应用完成后,才会执行新的请求,否则会一直等待。等待的时间和中继日志里未应用的事务量成一定比率.

  优点:优先保证了本地节点永远读取到最新的数据。

  缺点:必须煎熬等待本地节点中继日志里未应用的数据正常应用。如果日志里有很多写的不好的事务块或者大事务,则会造成本节点很大的延迟

3. AFTER:确保全局强一致性,可以保证所有节点数据实时同步。

  这类选项代表全局强一致性。设置为此模式的节点,必须等待集群内其他所有其他节点应用完自己中继日志里的事务,才能返回结果

  优点:优先保证了集群内所有节点的数据一致性,

  缺点:带来一个很大的性能问题:集群对外总的事务提交时间依赖于组内最慢的那个节点。如果最慢的节点遇到故障,那其他节点就必须等待超时回滚了

4. BEFORE_AND_AFTER:最高级别,确保本地强一致性,全局强一致性。结合 BEOFRE 和 AFTER 的特性。

5. BEFORE_ON_PRIMARY_FAILOVER:确保从节点晋升为主节点后的本地一致性。