MySQL主从之外,你又多了一项选择,Galera架构师之路关注共 1387字,需浏览 3分钟 ·2021-09-13 19:16 绝大部分互联网公司,都使用MySQL的InnoDB引擎存储数据。为了保证数据库的高可用,为了保证性能的扩展,绝大部分公司又会使用主从同步,读写分离的MySQL集群架构。传统的主从同步,读写分离MySQL集群架构如上图所示:(1)主库:左侧第一个实例,提供写服务的实例;(2)从库:右侧两个实例,提供读服务的实例;此时数据复制是如何实现的呢?仍如上图所示:(1)客户端将写操作提交给主库;(2)Replication:主库将操作序列化,通过binlog的方式传输给从库;(3)从库执行相同序列的操作,以实现副本冗余;传统的主从同步,读写分离冗余模式,数据库集群存在什么问题呢?(1)用户要关注集群细节,实施读写分离;(2)写库仍是单点,性能无法线性扩充;(3)读库有延时,数据不一致;(4)写库挂了,从库顶上,可能出现数据丢失;(5)如果引入中间件,SQL能力会受影响;(6)运维复杂性;(7)…既然这么多痛点,有没有一项技术,能够解决大家的问题呢?Galera集群(Galera Cluster)孕育而生。什么是Galera集群?Galera集群是一个基于MySQL InnoDB同步复制的:(1)同步;(2)多主;(3)数据库集群;画外音:它能支持例如MariaDB等其他数据库,本文重点讲MySQL。如上图所示:(1)Galera集群由一组MySQL集群组成;(2)Replication:这一组MySQL服务器使用复制插件来管理数据库复制;(3)客户端可以读写集群中的任何一个节点;Galera集群官网号称,它及其流弊:(1)真正的多主(True Multi_Master),任何数据修改会被复制到其他节点;(2)没有所谓的从库延时(slave lag),同步复制;(3)强一致性,所有节点处于一致的状态;(4)热备,高可用,不需要处理所谓的主从故障转移,也不需要虚IP;(5)无需读写分离,随时可以读写任何节点;(6)支持InnoDB;(7)对应用程序透明;(8)… 总之,在官网的描述中,Galera集群是一个高可用的,高性能的,能保证数据一致性与完整性的:(1)针对MySQL的;(2)基于同步认证的(synchronous certification-based);(3)多副本(replication);解决方案。 网上Galera的资料好像比较少,问了几个之前的朋友,在互联网公司似乎也用得不多,准备深入写一下Galera集群,毕竟是MySQL主从之后的又一种选择。 关于官网吹得飞起的Galera,你对哪些技术点感兴趣呢?你猜它是怎么实现的呢?大家觉得是否要深入写下去,or换别的话题呢?评论里告诉我。MySQL内核相关文章:《缓冲池(buffer pool),这次彻底懂了!》《写缓冲(change buffer),这次彻底懂了!》《日志缓冲(log buffer),这次彻底懂了!》《double write buffer,这次彻底懂了!》《关于MySQL,这篇都没人赞?》 浏览 50点赞 评论 收藏 分享 手机扫一扫分享分享 举报 评论图片表情视频评价全部评论推荐 MySQL/GaleraGalera 是一套在 MySQL InnoDB 上面实现 Multi-master 且 synchMySQL/GaleraGalera是一套在MySQLInnoDB上面实现Multi-master且synchronousreplication的系統。Kubernetes 部署 MySQL 主从服务k8s技术圈0Kubernetes部署MySQL主从服务程序IT圈0MySQL主从数据不一致,怎么办?码农沉思录0Kubernetes 部署 MySQL 主从集群DevOps技术栈0LWN:万维网之外的选择!Linux News搬运工0用 Docker 构建 MySQL 主从环境开源Linux0MySQL 主从同步延时问题与解决方案Doocs开源社区0MySQL常见面试题:什么是主从延时?如何降低主从延时?码农编程进阶笔记0点赞 评论 收藏 分享 手机扫一扫分享分享 举报