当前位置: 首页 > 科技观察

除了MySQL主从,你还有另外一种选择,Galera的大部分互联网公司

时间:2023-03-19 19:09:56 科技观察

都使用MySQL的InnoDB引擎来存储数据。为了保证数据库的高可用,保证性能的扩展,大部分公司都会采用主从同步、读写分离的MySQL集群架构。传统的主从同步、读写分离的MySQL集群架构如上图所示:主库:左边第一个实例,提供写服务的实例;从库:右边的两个实例,提供读服务的实例;这时数据复制是如何实现的呢?还是如上图所示:客户端向主库提交写操作;Replication:主库将操作序列化,通过binlog传输给从库;从库执行相同的操作顺序,以实现复制冗余;传统的主从同步、读写分离冗余模式,数据库集群存在哪些问题?(1)用户要注意集群的细节,实现读写分离;(2)写库还是单点,性能无法线性扩展;(3)读取数据库有延迟,数据不一致;(4)写数据库挂了,从数据库顶层可能会出现数据丢失;(5)如果引入中间件,SQL能力会受到影响;(6)运维复杂;(7)...既然痛点那么多,有没有一种技术可以解决大家的问题呢?加莱拉星团(GaleraCluster)诞生了。什么是加莱拉集群?GaleraCluster是基于MySQL的同步复制InnoDB:synchronous;多主机;数据库集群。画外音:可以支持MariaDB等其他数据库,本文重点介绍MySQL。如上图所示:Galera集群由一组MySQL集群组成;复制:这组MySQL服务器使用复制插件来管理数据库复制;客户端可以读取和写入集群中的任何节点。Galera集群官网声称它有缺点:(1)TrueMulti_Master(真多主控),任何数据修改都会复制到其他节点;(2)没有所谓的slavelag,同步复制;(3)强一致性,所有节点都处于一致状态;(4)双机热备,高可用,无需处理所谓的master-slavefailover,无需虚拟IP;(5)无读写分离,可以随时读写任意节点;(6)支持InnoDB;(7)对应用透明;(8)...总之,在官网的描述中,Galera集群是一个高可用、高性能,并且可以保证数据一致性和完整性的:(1)forMySQL;(2)基于同步认证(synchronouscertification-based);(3)多拷贝(replication)。解决办法:网上关于Galera的资料好像比较少。之前问过几个朋友,好像在互联网公司用的不多。我将深入撰写有关Galera集群的文章。毕竟是MySQL主从之后的另一种选择。【本文为专栏作者《58神剑》原创稿件,转载请联系原作者】点此阅读更多该作者好文