Galera集群
Galera是一个mysql的同步多主集群软件,目前只支持INnoDB存储引擎
功能:
同步复制
Multi-master,及所有节点都可以同时进行读写操作
自动的成员节点控制,失效节点自动被剔除
新节点加入数据自动复制
真正的并行复制,行级
优点:
因为是多主,不存在slave lag(延迟)
不存在丢失交易的情况
同时具有读写的能力
更小的客户端延迟
节点间的数据是同步的(使用rsync进行同步)
部署图:
Galera应用程序实际上是库文件,但是mysql只是通过底层galera软件(生成的库文件)是做不到数据同步的,要借用wsrepc插件(或者mysql的补丁)。可以到http://galeracluster.com/这个官网下载。
首先客户端向数据库更新数据并按下确认键,wsapi通过hook的方式侵入Innodb中事务的commit流程,获取事务内所有数据行的更改,构造一个write set并将其复制到group产生GTID然后发送给其他服务器,看是否能执行,如果能执行,则更新本地文件,不能执行则发生回滚,回滚到原来数据。