暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql各高可用架构说明

在路上 2025-01-18
168

1.mysql主从复制

原理:主服务器将数据变更写入二进制日志,从服务器通过I/O线程读取主服务器的二进制日志并写入本地的中继日志,随后sql线程从中继日志中读取并执行这些事件,以同步主服务器的数据。

适用于:简单的数据冗余、读写分离场景,但数据一致性较低,故障恢复需要手动干预。

2.mysql group replication(MGR)分布式一致性算法 mysql官方

原理:MGR基于paxos协议,将多个mysql服务器组成一个逻辑组,组内每个节点既是主服务器也是从服务器。所有写操作在被提交前必须经过组内多数节点的共识,确保数据一致性。即使部分节点故障,只要多数节点存活,MGR就能继续提供服务。适用于一致性较高的金融场景。

适用于:需要强一致性 和高可用性的分布式数据库场景,提供自动故障恢复和数据强一致性。

3.mysql master high availablility(MHA)非官方,开源社区

原理:MHA开源的高可用解决方案,通过监控主从复制状态,自动监测主服务器故障,并在故障发生时自动执行主从切换。MHA由管理节点和数据节点组成,管理节点负责监控、故障监测、切换决策和执行,数据节点是参与复制的mysql服务器。

适用于:已有主从复制架构,希望增强故障检测和自动切换能力的场景,但需要额外的管理节点。

4.myql innodb cluster

原理:mysql innodb cluster 是由mysql官方提供的基于MGR的高可用方案,它包含了mysql server、mysql shell(用于集群管理)和mysql router(用于客户端连接路由)。innodb cluster 提供了组复制、自动故障切换、在线扩缩容等功能,简化了高可用mysql集群的部署和管理。

适用于:希望快速部署和管理的基于MGR的高可用mysql集群的用户,提供一体化的解决方案,但需要特定服务。


5.MHA对比主从+keepalibed

MHA,其实是通过监控binlog实现了一致性的问题,自动将从服务器同步到主服务器故障发生前的状态,主要考虑在master宕机了后保证slave的数据损失最小;

keepalived就是实现vip的高可用而已,不处理数据同步和一致性。

MHA在故障切换过程中能更大程度上保证数据的一致性,而Keepalived则更侧重于网络服务的高可用性和负载均衡。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论