服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL主从之外,你又多了一项选择,Galera

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

2021-09-09 23:4351CTO58沈剑 Mysql

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

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

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

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

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

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

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

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

仍如上图所示:

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

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

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

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

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

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

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

(6)运维复杂性;

(7)…

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

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

什么是Galera集群?

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

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

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

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

如上图所示:

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

原文链接:https://database.51cto.com/art/202109/681479.htm

延伸 · 阅读

精彩推荐
  • MysqlMySQL新建用户中的%到底包不包括localhost?

    MySQL新建用户中的%到底包不包括localhost?

    操作MySQL的时候发现,有时只建了%的账号,可以通过localhost连接,有时候却不可以,网上搜索也找不到满意的答案,干脆手动测试一波...

    程淇铭1962019-06-05
  • MysqlMySQL MyISAM 与InnoDB 的区别

    MySQL MyISAM 与InnoDB 的区别

    这篇文章主要介绍了MySQL MyISAM与InnoDB 的区别,帮助大家更好的理解和使用MySQL的存储引擎,感兴趣的朋友可以了解下...

    Achilles_Heel1512020-11-18
  • MysqlMySQL视图原理与基本操作示例

    MySQL视图原理与基本操作示例

    这篇文章主要介绍了MySQL视图原理与基本操作,简单描述了mysql视图的概念、功能并结合实例形式分析了mysql视图的创建、查询、修改、删除等相关操作技巧...

    笑笑别人4392020-08-28
  • Mysql详解MySQL 联合查询优化机制

    详解MySQL 联合查询优化机制

    MySQL 使用联合的形式的地方会远远超过我们过去认知的范畴。基本上,它会认为每个查询都有联合,而不仅仅是从两张表中查出匹配的数据行,这包括了子...

    岛上码农11292021-07-02
  • MysqlMysql数据库错误代码中文详细说明

    Mysql数据库错误代码中文详细说明

    在mysql开发中出现错误代码各种各样,下面我来给大家收集常用见的mysql使用过程中出错代码的中文说明,希望些文章对各位朋友有所帮助了 ...

    MYSQL教程网1802020-01-08
  • Mysqlmysql查询优化之100万条数据的一张表优化方案

    mysql查询优化之100万条数据的一张表优化方案

    这篇文章主要介绍了mysql查询优化之100万条数据的一张表优化方案,需要的朋友可以参考下 ...

    llzhang12310102021-07-02
  • MysqlMySQL 查询某个字段不重复的所有记录

    MySQL 查询某个字段不重复的所有记录

    现在想从这5条记录中查询所有title不重复的记录 ...

    mysql教程网4842019-10-27
  • MysqlSysbench多线程性能测试工具

    Sysbench多线程性能测试工具

    sysbench是一个多线程性能测试工具,可以进行CPU/内存/IO/数据库等性能测试,不过我绝大多数的时候都是用它来对数据库(MySQL)进行oltp测试 ...

    MYSQL教程网1962019-12-13