MySQL常用架构

MySQL架构 Replication(MR)异步复制

无法保证当master失效后所有的updates已经复制到了slaves上,只有重启master才能继续恢复这些数据,如果master因为宿主机器物理损坏而无法修复,那些尚未复制到slaves上的updates将永久性丢失;因此异步方式存在一定的数据丢失的风险,但它的优点就是master支持的write并发能力较强,因为
master上的writes操作与slaves的复制是互为独立的。
不过这种模式,slaves总有一定的延后,这种延后在事务操作密集的应用中更加明显,不过通常这种延后时间都极其短暂的。从另一个方面来说,异步方式不要求slaves必须时刻与master建立链接,可能slaves离线、中断了replication进程或者链接的传输延迟很高,这都不会影响master对writes请求的
处理效率。比如对于“远距分布”的slaves,异步复制是比较好的选择。
此模式下,如果master失效,我们通常的做法是重启master,而不是failover到其他的slave,除非master无法恢复;因为master上会有些updates尚未复制给slaves,如果此时failover则意味着那些updates将丢失。

MySQL架构MHA

MHA(Master HA)是一款开源的 MySQL 的高可用程序,MHA 在监控到 master 节点故障时,会提升其中拥有最新数据的 slave 节点成为新的master 节点,在此期间,MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题。MHA还提供了 master 节点的在线切换功能,即按需切换master/slave 节点。
MHA 是由日本人 yoshinorim(原就职于DeNA现就职于FaceBook)开发的比较成熟的 MySQL 高可用方案。MHA能够在30秒内实现故障切换,并能在故障切换中,最大可能的保证数据一致性。

MySQL架构Group Replication(MGR)

group replication中有组(group)的概念,被group replication连接在一起的MySQL服务器是一个高可用组,组内的MySQL服务器被称为成员。组的概念贯穿与group replication的使用和内部实现之中。group replication内部集成了组管理服务,实现了很多组内成员的自动化管理功能,这使得group replication的使用和管理变得非常简单。
用户对group replication组的管理有三种操作,分别如下:
①:创建组:当组的第一个成员启动时,需要对组进行初始化
②:加入组:将MySQL服务器加入到一个存在的group replication组内
③:离开组:从一个group replication组内移除一台MySQL服务器;
半同步复制市在master提交之前需要等待binlog传到slave之后,slave恢复ACK给到master,用以确认master执行的事务已经传到了slave,注意这不保证salve应用了这些事务。冗余能力很好,能够保证binlog event至少被复制到超过一半的成员上。

MySQL架构PXC(percona xtraDB cluster)-galera cluster

Galera集群具有以下特点:

  • 多主架构:真正的多主多活群集,可随时对任何节点进行读写。
  • 同步复制:集群不同节点之间数据同步,某节点崩溃时没有数据丢失。
  • 数据一致:所有节点保持相同状态,节点之间无数据分歧。
  • 并行复制:重放支持多线程并行执行以获得更好的性能。
  • 故障转移:故障节点本身对集群的影响非常小,某节点出现问题时无需切换操作,因此不需要使用VIP,也不会中断服务。
  • 自动克隆:新增节点会自动拉取在线节点的数据,最终集群所有节点数据一致,而不需要手动备份恢复。
  • 应用透明:提供透明的客户端访问,不需要对应用程序进行更改。
    裂脑(Split-Brain)
    状态快照传输 SST
    增量状态转移 IST
    流控 FLOW CONTROL

MySQL常用架构

上一篇:Redis 通过 RDB 方式进行数据备份与还原


下一篇:mysql(mariadb)相关设置