MySQL主从之外,你又多了一项选择,Galera

开发 开发工具 MySQL
为了保证数据库的高可用,为了保证性能的扩展,绝大部分公司又会使用主从同步,读写分离的MySQL集群架构。

[[422835]]

绝大部分互联网公司,都使用MySQL的InnoDB引擎存储数据。

为了保证数据库的高可用,为了保证性能的扩展,绝大部分公司又会使用主从同步,读写分离的MySQL集群架构。

传统的主从同步,读写分离MySQL集群架构如上图所示:

  • 主库:左侧第一个实例,提供写服务的实例;
  • 从库:右侧两个实例,提供读服务的实例;

此时数据复制是如何实现的呢?

仍如上图所示:

  • 客户端将写操作提交给主库;
  • Replication:主库将操作序列化,通过binlog的方式传输给从库;
  • 从库执行相同序列的操作,以实现副本冗余;

传统的主从同步,读写分离冗余模式,数据库集群存在什么问题呢?

(1)用户要关注集群细节,实施读写分离;

(2)写库仍是单点,性能无法线性扩充;

(3)读库有延时,数据不一致;

(4)写库挂了,从库顶上,可能出现数据丢失;

(5)如果引入中间件,SQL能力会受影响;

(6)运维复杂性;

(7)…

既然这么多痛点,有没有一项技术,能够解决大家的问题呢?

Galera集群(Galera Cluster)孕育而生。

什么是Galera集群?

Galera集群是一个基于MySQL InnoDB同步复制的:

  • 同步;
  • 多主;
  • 数据库集群。

画外音:它能支持例如MariaDB等其他数据库,本文重点讲MySQL。

如上图所示:

  • Galera集群由一组MySQL集群组成;
  • Replication:这一组MySQL服务器使用复制插件来管理数据库复制;
  • 客户端可以读写集群中的任何一个节点。

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主从之后的又一种选择。

【本文为51CTO专栏作者“58沈剑”原创稿件,转载请联系原作者】

戳这里,看该作者更多好文 

 

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2021-06-02 18:46:13

监控日志Prometheus

2016-03-04 13:37:39

DCOSDocker数人云

2019-02-19 10:30:44

开发技能代码

2016-10-21 08:32:56

电动车乐视科技新闻早报

2022-09-29 12:09:40

MySQLTiDB数据库

2023-02-13 23:15:31

ChatGPT聊天机器人人工智能

2022-05-24 10:20:26

前端配置优化

2011-03-04 15:50:00

FileZilla

2021-02-08 23:17:25

IT投资首席信息官

2021-12-28 10:16:59

ITIT领导IT管理

2009-07-27 14:38:34

网络运维管理奥运

2021-05-10 09:52:35

技术隐私浏览器

2017-09-26 09:26:00

HTC手机小米

2011-05-25 09:17:33

JavaScriptswitchdefault

2015-10-20 17:13:56

Perforce

2021-08-02 23:19:06

微信小程序人工智能

2022-07-11 10:38:24

首席信息官CIO

2015-07-14 16:17:56

亚马逊AWSAWS API Gat

2012-03-27 10:24:24

Siri

2016-03-10 11:48:41

点赞
收藏

51CTO技术栈公众号