mysql多主 锁_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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值