欧美网站与中国网站区别,能做wordpress的网站,找平面设计师网站,谷歌google官方网站Mysql 介绍 Mysql是典型的开源关系型数据库#xff0c;是许多网站、应用程序、企业软件产品的首选数据库。 Mysql特性#xff1a; 易于使用#xff0c;功能强大#xff0c;支持事务、触发器、存储过程 管理工具多种多样且功能丰富 可以作为千万级数据管理的大型数据库 采…Mysql 介绍 Mysql是典型的开源关系型数据库是许多网站、应用程序、企业软件产品的首选数据库。 Mysql特性 易于使用功能强大支持事务、触发器、存储过程 管理工具多种多样且功能丰富 可以作为千万级数据管理的大型数据库 采用GPL开源协议允许自由修改源码并应用到商业系统中 Mysql的InnoDB事务性存储引擎符合事务ACID模型能保证完整、可靠地进行数据地存储 高可用结构 主从模式 MHA MMM MGR 主从模式 主从模式介绍 主从模式是最基本的Mysql高可用架构一台服务器作为Master节点若干服务器作为Slave节点。只有Master处理写数据请求读请求可仅由Slave节点处理也可让Master、Slave同时处理。 Master和Slave通过主从复制技术保持数据一致即Master节点将数据同步给Slave节点。 主从模式具备高可用的基础是主从复制技术。 主从复制技术 当Master 数据发生变更新增、删除、修改时Master将变更日志写入二进制日志文件 binlog Slave启动单独线程I/O线程与Master建立网络连接从Master的binlog中获取变更日志 Slave的I/O线程捕获到数据变更日志后按照顺序保存到中继日志文件 relay log Slave启动单独线程Sql线程从relay log 中读取日志并执行使Slave 库的数据和Master一致 主从模式注意事项 Mysql 5.5之前主从复制为异步方式Master 提交事务不需要经过Slave 们的确认那么就会有这种极端情况 Slave 读取Master 的binlog失败了 Slave 处理relay log 失败了 Slave 执行Sql语句失败了 等...... 类似的极端情况将导致数据不一致。所以在Mysql 5.5 主从复制提供了半同步的方式具体来说就是增加了ACK确认的机制当Slave接收到binlog 后会给Master 发送一条确认消息Master在接收到ACK确认消息之后才会提交事务。半同步方式可以提高数据的一致性但是Master在写入数据的时候需要等待Slave的确认所以性能会有所下降。 复制风暴问题来考虑这样一种更加极端的情况一个Master 10个Slave 这种情况下基于主从复制技术Master在写入数据前需要同时处理10个Slave的数据复制请求这种情况下对于Master只能说是不堪重负如果在加上“半同步机制”写入性能将大打折扣这种情况称之为复制风暴问题。解决这种问题的方法是Master 仅处理一个Slave的主从复制其它的Slave复制由Slave负责。 MHAMasterHighAvailability MHA模式介绍 以主从模式为基础接下来就该考虑如下问题了 如何检测节点故障 master节点故障之后如何重新选举 MHA就是在解决这两个问题的理论上MHA模式可以在10s-30s内完成主从集群的自动故障检测和自动主从切换。 MHA由两个部分组成 MHA-Manager负责自动检测Master是否故障检查主从复制状态执行自动主从切换等。需要单独服务器部署。 MHA-Node负责修复主从数据的差异通常和Mysql服务器实例绑定部署。 MHA工作流程 Manager 和 Master之间心跳如果连续4次探测不到心跳就认为该Master宕机了Master实例绑定一个Node。 Manager 分析各个Slave的binlog选择一个更接近Master数据的Slave作为备选Master一个Slave实例分别绑定一个Node。 Slave的Node试图通过SSH访问Master所在服务器 如果可达Slave的Node获取Master的binlog数据若发现Master和Slave数据存在差异会将差异数据主动复制到Slave以保持主从数据一致。 如果不可达Node对比各个Slave的relay log 差异并做差异数据补齐。 Manager将备选Master提升为Master。 MMMMulti-MasterReplicationManagerForMysql MMM模式简单来说就是引入虚拟IPvip技术这种架构下一个集群中有两个Master和若干个Slave当其中一个Master不可用的时候MMM会指示vip切换到另外一个Master上面同时会向所有的Slave发送更换Master的消息之后主从复制将切换到新的Master。 此方案比较古老不支持Mysql GTID 并且社区活跃度不够目前处于无人维护的状态。 MGRMysqlGroupReplication MGRMysql组复制模式是Mysql5.7.17版本推出的高可用解决方案具备如下特性 一致性高数据复制基于分布式共识算法Paxos可以保证多个节点数据的一致性 容错性高只要不是超过一半的节点宕机就可以继续提供服务 灵活性强MGR支持单主模式和多主模式单主模式下如果Master故障Slave们会重新选举一个新的Master多主模式下每一个Mysql节点都可以同时处理写请求 MGR要求至少由3个Mysql节点组成一个复制组即一主两从一个事务必须经过复制组内超过半数节点通过后才能提交。 如果在不同的Mysql节点上执行不同的写操作发生了事务冲突那么先提交的事务先执行后提交的事务被回滚。在多主模式下由于每个Mysql节点都可以执行写请求在写请求高并发的场景下发生事务冲突的概率会非常大会造成大量事务回滚。 在单主模式下MGR会自动为复制组选择一个Master负责写请求如果复制组内超过一半节点与Master通信失败就认为Master宕机了这时会根据各个节点的权重和ID标识重新选主。 MGR更加适合一致性强写并发量不大的场景下使用。 总结 本文阐述了Mysql高可用架构方案介绍了 主从模式MHA模式MMM模式MGR模式 方案的实现方式没有哪个方案是完美的开发人员在选择何种方案应用到项目中也没有标准答案合适的才是最好的。 文章转载自一颗苹果 原文链接https://www.cnblogs.com/Naylor/p/18539381 体验地址引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构