Group Replication是MySQL官方发布的一个开源插件,用来实现MySQL高可用集群。
2016.12月Group Replication的第一个GA版本正式发布于MySQL5.7.17中。想要使用Group Replication功能,需要安装MySQL5.7.17及以后的版本。
组的概念:
Group Replication插件中有组(group)的概念,被Group Replication插件连接在一起的MySQL服务器是一个高可用组,组内的MySQL服务器被称为成员(Member)。
Group Replication在传输数据时,使用了paxos协议,在分布式环境下面保证了数据传输的一致性和原子性。
Paxos是用于一种分布式系统并且具有容错性的一致性算法,是目前业界公认能解决分布式系统一致性问题的算法之一。还有其他解决分布式一致性的算法如raft算法。
服务模式:
单主模式
多主模式
当主宕机之后,会自动选举新的主,无需人工干预。当db01宕机了如硬件故障,那么它会在db02,db03上面选举出一个主来对外提供服务,整个故障转移过程不需要人工干预。
使用了paxos协议保证了db1-3上的数据的一致性,mysql和Oracle是不一样的,Oracle集群是通过共享存储ASM来共享数据文件,通过锁来解决数据的并发访问。而mysql不共享任何东西所有的数据都copy了一份,所以要通过paxos协议来保证数据一致性。
多主模式,db1-3都是可读可写的,在任意的节点做读写都可以。