MySQL常见架构介绍 MHA-MGR-InnoDB Cluster-MySQL分布式

目录

概述:

MHA

MGR

InnoDB Cluster

分布式数据库:

分布式MySQL

参考资料:


概述:

在学习MySQL高可用架构中,本人一直云里雾里,在学习的姜老师的相关材料后总结了一下。本文主要介绍MySQL中常用的高可用架构MHA、MGR、InnoDB Cluster优缺点以及各自使用场景,同时也介绍了MySQL分布式这块方案以及推荐的使用场景

MHA

介绍:开源的MySQL高可用套件之一 ,为MySQL 提供自动的failover 的功能,由两大组件组成 MHA Manager ,MHA Node
组件功能:
Manager:总控服务器,判断高可用组是否可用,并通过执行Node节点商的脚本进行切换 
Node:部署在各个node节点伤
原理:采用SSH的方式进行通信,必然存在安全问题,同时ssh的效率也不是很高,所以一般部署不会超过20台机器,用于中小型项目 

 

MGR

介绍:不单单是数据同步技术,应该是高可用解决方案,适用于一致性要求较高的金融场景;
MGR的同步并没有采用复制技术,而是采用GCS(Group Communication System) 协议的日志同步技术,类似于paxos算法协议要求组中的大部分几点都接受到日志,才能完成提交,集群中的节点数要求基数;
虽然前面提到的无损半同步也可以保证主从的数据一致性,但是GCS具有更好的性能,当启用MGR插件的时候,开启新的端口用于数据同步
两种模式:

  • 单主模式
  • 多主模式

注意:单主模式下MGR可以进行自动的Failover切换,不用以来外部的各种高可用套件
缺点: 

  • 仅支持 innodb表,并且每张表一定要有主键 
  • 目前MGR最多支持9节点
  • 有一个几点不稳定,会影响集群的性能

注意第三点,和复制不一样的是,由于 MGR 使用的是 Paxos 协议,对于网络极其敏感,如果其中一个节点网络变慢,则会影响整个集群性能。而半同步复制,比如 ACK 为1,则 1 个节点网络出现问题,不影响整个集群的性能。所以,在决定使用 MGR 后,切记一定要严格保障网络的质量。

InnoDB Cluster

介绍:MGR是基于Paxos算法进行数据同步,将数据库状态以及日志同步到各个节点,但是如果要实现一个完整的高可用介乎方案,就需要更高一级 Innodb Cluster来实现
组成:

  • MGR集群
  • MySQL Shell
  • MySQL Router

InnoDB Cluster 底层是 MGR,通过类 Paoxs 算法进行数据同步,性能更好,且能保证数据的完整性。结合管理工具 MySQL Shell,路由工具 MySQL Router 能构建一个完整的 MySQL 高可用解决方案。

分布式数据库:

定义:就是将数据分布在不同物理位置的shu
一般组成:

  • 计算层:数据访问权限检查,路由访问以及计算结果等操作
  • 元数据管理:记录了存储节点的信息,解析SQL和路由的工作
  • 存储层:存放数据

分布式数据库也存在缺点:正因为数据被打散了,分布式数据库会引入很多新问题,比如自增实现、索引设计、分布式事务等

分布式MySQL

介绍:
MySQL的分布式中,常见两种方法,第一种分库分表,第二种采用分布式中间件

分库分表设计:
分库分表: 明确数据库表的分片逻辑了,业务直接就可以访问了,在业务层面实现数据的访问。如下:

优点:与单实例的操作相同,只是多了一层分片的操作 
缺点:业务需要感知分片的变化,如果分片改变,或者扩容,那么业务需要该种很大

分布式中间件
分布式中间件:遵循MySQL协议,业务直接访问MySQL分布式中间,
数据路由以及分布式事务的实现操作全部交由中间件完成;所以分布式中间件是关键核心组件。 
业界比较知名的分布式中间件产品:ShardingShpere,DBLE,TDSQL等     

优点:对于业务层无感,对于后续扩容变更管理更加方便
缺点:多了中间件一层,单个事务的耗时肯定会增加,对于高性能的系统也不支持

如何选择:
对于较小的业务(tps不超过1000的业务)建议选择数据库中间件访问分布式数据库比较优,通常业务处于爬升期,开发人员专注业务的开发
海量的事务,追求性能,直接连接(支付宝、阿里采用直连的方式)

参考资料:

https://kaiwu.lagou.com/course/courseInfo.htm?courseId=869#/detail/pc?id=7341
https://kaiwu.lagou.com/course/courseInfo.htm?courseId=869#/detail/pc?id=7335
https://kaiwu.lagou.com/course/courseInfo.htm?courseId=869#/detail/pc?id=7336

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值