1. 何谓Galera Cluster
何谓Galera Cluster?就是集成了Galera插件的MySQL集群,是一种新型的,数据不共享的,高度冗余的高可用的方案。目前Galera Cluster有两个版本,分别是Percona Xtradb Cluster及MariaDB Cluster,都是基于Galera的,所以这里都统称为Galera Cluster了,因为Galera本身是具有多主特性的,所以Galera Cluster也就是multi-master的集群架构,如图1所示:
1.png上图有三个实例组成一个集群,而这三个节点与普通的主从架构不同,它们都可以作为主节点,三个节点是对等的,这种一般被称为multi-master架构,当有客户端要写入或者读取数据时,随便连接哪一个节点都是一样的,读到的数据是相同的,写入某一个节点后,集群自己会将新数据同步到其他节点上,这种架构不共享任何数据,是一种高度冗余架构。
一般的使用方法是,在这个集群的前端再搭建一个中间层(类似于这种中间层的思想架构方案很多时候都会用到,是一种非常常见的解决方案),这个中间层的功能包括建立连接,管理连接池,负责使三个节点的负载基本均衡,负责在客户端与节点的连接断开之后的重连,也可以负责读写分离(在集群机器性能情况不同的情况下可以用这种方案)等等。使用这个中间层之后,由于这三个节点在客户端方面是完全透明的,客户端只需要指定这个数据库集群的源地址链接到中间层即可。中间层会负责客户端与后端节点连接的传递工作,因为这个架构支持多点写入,所以避免了主从复制架构中的数据不一致问题,从而可以做到主从读写切换的高度优雅,在不影响用户的情况下,离线维护等工作,MySQL的高可用。从此开始,非常完美。
2.为什么需要Galera Cluster?
传统的MySQL集群方案有MHA、MMM等,这些架构是每个需要数据库高可用方案的入门必备选型。但这些传统的架构一直被人们所诟病,因为MySQL的主从模式天生的不能保证数据完全一致性。可以说,传统的方案只能是通过牺牲性能,来获得数据一致性,但也只是在降低数据不一致性的可能性而已。所以现在就急需一种新型架构,从根本上解决这样的问题,天生的摆脱掉主从复制模式这样的“美中不足”之处了。
相比传统的主从复制架构,Galera Cluster解决的最核心问题是,在三个实例(节点)之间,它们的关系是对等的,multi-master架构的,在多节点同时写入的时候,能够保证整个集群数据的一致性,完整性与正确性。
3.Galera Cluster如何解决问题
现在已经知道Galera Cluster是MySQL封装了具有高度一致性,支持多点写入的同步通信模块Galera而做的,它是建立在MySQL同步基础之上的,使用Galera Cluster时,应用程序可以直接读、写某个节点的最新数据,并且可以在不影响程序读写的情况下,下线某个节点,因为支持多点写入,使得Failover变得非常简单。
网友评论