MySQL之高可用架构详解


当前第2页 返回上一页

Master节点写数据到Binlog,并且执行Sync操作。Master发送数据给Slave节点,同时commit主库的事务。收到ACK后Master节点把数据返回给客户端。

这种数据提交模式叫:?after_commit

after_commit?模式存在问题: 主库等待ACK时,事务已经commit,主库的其他事务可以读到commit的数据,这个时候如果Master崩溃,slave数据丢失,发生主从切换,会导致出现幻读。 为了解决这个问题MySQL5.7提出了新的半同步复制模式:?after_sync

把主库的事务提交放到了ACK之后,避免了上述问题。 MySQL5.7还引入了?enhanced multi-threaded slave?(简称MTS)模式, 当slave配置?slave_parallel_workers?>0并且
global.slave_parallel_type?=‘LOGICAL_CLOCK',可支持一个schema下,slave_parallel_workers个worker线程并发执行relay log中主库提交的事务,极大地提高了主从复制的效率。 MySQL5.7半同步功能可以通过
rpl_semi_sync_master_wait_slave_count?参数配置slave节点ACK的个数,认为主从同步完成。

基于MySQL主从同步数据越来越完善,效率越来越高,也就引出了第一种MySQL的高可用架构: 基于MySQL自身的主从同步方案,常用的一种部署架构是: 用户通过VIP访问Master和Slave节点,每个节点采用keepalved探索。配置主从关系,进行数据同步。

基于MHA的高可用架构: 部署一份MHA的Manager节点,在MySQL各个实例部署MHA Node节点。MHA可以实现秒级的故障自动转移。 当然MySQL节点之间的数据同步还要依赖MySQL自身的数据同步方式。

MGR(MySQL Group Replication)模式: 感觉MySQL官方更看好MGR集群方案,但是目前我还不知道国内有哪一家公司在使用。 MGR集群是由所有的MySQL Server共同组成的,每个Server都有完整的副本数据,副本之间基于Row格式的日志和GTID来做副本之前的数据同步,采用Paxos算法实现数据的一致性保障。 MGR架构要比前面讲述的半同步和异步同步数据的方式要复杂,具体可以参照 官网

总结

MySQL的高可用架构没有银弹,了解其原理,选择符合自己业务场景的部署架构就可以了。

到此这篇关于MySQL之高可用架构详解的文章就介绍到这了,更多相关MySQL高可用架构内容请搜索

更多相关Mysql内容来自木庄网络博客


标签:Mysql

返回前面的内容

相关阅读 >>

关系数据库之mysql三:从一条sql的生命周期说起

mysql怎么修改数据表里一行数据?

mysql图形化管理工具哪个好?mysql图形化管理工具排行

mysql里面字段是什么意思?

mysql隔离级别有几种

centos编译安装mysql 5.6及安装多个mysql实例详解

mysql数据库锁机制的介绍

mysql无法启动的解决办法示例分享

mysql建表语句中显示双引号的方法介绍

详解mysql重建表分区并保留数据的相关方法

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...