【MySQL】galera集群原理简介

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

【MySQL】galera集群原理简介

  1. 特性
    基于行复制的完全并行同步复制
    实时多主架构,任意节点可读写
    无延迟复制,事务零丢失,可靠健壮的读写体验。
    自动化节点关系控制:节点故障自动摘除,节点加入自动协调
    接近原生的MySQL数据库连接的体验
    2.应用
    percona分支的PXC集群,
    Maria分支的MariaDB Cluster集群
    3.原理简析
    当一个事务在当前写入的节点提交后,通过wsrep API(write set replication API)将这个事务变成
    写集(write set)广播到同集群的其他节点中,其他节点收到写集事务后,对这个事务进行可行性检查,
    并返回结果给wsrep API。
    若大多数节点都预估自己可以成功执行这个事务,则wsrep API会做出仲裁,通知所有可以成功执行这
    个事务的节点提交这个事务,并将事务成功提交的消息返回给客户端,同时根据需要剔除没有成功执行
    事务的节点
    4.galera共享库
    galera本身是作为一个插件式的共享库文件,MySQL通过调用galera写集复制API挂钩,获得galera集群
    特性。
    4.1 galera共享库组成部分
    galera库是一个提供准备,复制,应用写集事务功能的协议栈,其重要组成部分为:
    wsrep API:写集复制功能组件,负责提供关系型数据库管理与复制服务,定义接口
    wsrep hooks:在数据库引擎中的集成写集组件
    Gelera Provider:将共享库转化为wsrep API
    Certification Layer:保护写集并完整性,验证写集完整性
    replication:管理复制协议,提供完整的指令系统
    GCS framwork:为集群组通信提供插件架构
    5.优势
    与异步复制相比
    数据一致性强,传统异步复制并不能保证主从数据一致性,这是由于一般情况下,主库多线程并发执行
    事务,但从库却只有一个线程重做事务,在高压力情况下必然会导致主从延迟。
    与使用半同步复制或分布式锁实现的同步复制相比
    性能高,扩展性好,半同步复制在高负载甚至从库性能较差的情况下,难以保证其性能。即使自动的
    从半同步复制切换到异步复制,也会牺牲其最大的优点:一致性。其扩展友好度也较差
    galera集群的独特优势
    1.集群中的每个节点都保存着一份完整的数据副本,数据备份安全性高
    2.集群扩展性强,可以自适应的增加或者下线节点:
    新节点上线时,可以空库状态直接从集群中获取全量数据传输(SST),也可以选择从恢复最新备份状
    态加入集群,获取差量数据传输(IST)
    下线维护其中一个节点时,直接关闭实例,集群就会自动踢出这个节点。维护完毕上线后,会根据自身
    数据与集群数据的落后程度决定通过SST或者IST传输数据。
    3.高效的同步效率,提供了高性能的读写状态(相对于同步复制)。由于同步机制的原因,甚至可以
    通过增加slave线程的办法更进一步提高节点同步效率
    4.更加友好的软硬件兼容性:MySQL官方的NDB,虽然也可以实现同样功能,但因对软硬件要求较高,
    导致其使用量与galera集群不在一个数量级,其增加节点容易,但无法不停机移除节点
    7.缺点:
    DDL操作会严重阻塞同步线程,线上大动作DDL会导致有可能导致节点堵塞无响应,更进一步会导致
    部分节点下线。实际使用中需要搭配pt-osc或者gh-osc等在线DDL工具来进行操作DDL。

附:无延迟复制是指写集同一时间提交,但实际环境中可能因为部分原因导致节点间执行速度有差异,但从理念上已经比半同步复制更先进了一些
本文部分内容参考了galera官方网站的内容,与其《Minimizing downtime and maximizing elasticity with Galera Cluster for MySQL》白皮书



 本文转自 angry_frog 51CTO博客,原文链接:http://blog.51cto.com/l0vesql/2044262

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
SQL 关系型数据库 MySQL
说一下MySQL主从复制的原理?
【8月更文挑战第24天】说一下MySQL主从复制的原理?
29 0
|
16天前
|
负载均衡 算法 关系型数据库
MySQL集群如何实现负载均衡?
【8月更文挑战第16天】MySQL集群如何实现负载均衡?
40 6
|
11天前
|
SQL 关系型数据库 MySQL
Mysql原理与调优-事务与MVCC
【8月更文挑战第19天】
|
16天前
|
存储 负载均衡 关系型数据库
MySQL集群
【8月更文挑战第16天】MySQL集群
32 5
|
16天前
|
SQL 负载均衡 关系型数据库
*配置MySQL集群
【8月更文挑战第16天】*配置MySQL集群
22 2
|
15天前
|
存储 SQL 关系型数据库
深入MySQL锁机制:原理、死锁解决及Java防范技巧
深入MySQL锁机制:原理、死锁解决及Java防范技巧
|
20天前
|
SQL 关系型数据库 MySQL
Nacos 1.2.1 集群搭建(二)MySQL、cluster 配置
Nacos 1.2.1 集群搭建(二)MySQL、cluster 配置
35 1
|
24天前
|
存储 关系型数据库 MySQL
[mysql]MGR简介与部署
[mysql]MGR简介与部署
|
8天前
|
缓存 关系型数据库 MySQL
如何实现mysql高可用集群
如何实现mysql高可用集群
|
13天前
|
canal 关系型数据库 MySQL
"揭秘阿里数据同步黑科技Canal:从原理到实战,手把手教你玩转MySQL数据秒级同步,让你的数据处理能力瞬间飙升,成为技术界的新晋网红!"
【8月更文挑战第18天】Canal是一款由阿里巴巴开源的高性能数据同步系统,它通过解析MySQL的增量日志(Binlog),提供低延迟、可靠的数据订阅和消费功能。Canal模拟MySQL Slave与Master间的交互协议来接收并解析Binary Log,支持数据的增量同步。配置简单直观,包括Server和Instance两层配置。在实战中,Canal可用于数据库镜像、实时备份等多种场景,通过集成Canal Client可实现数据的消费和处理,如更新缓存或写入消息队列。
103 0

热门文章

最新文章

下一篇
云函数