mysql 高可用

高可用的设计原理:linux

  • 要作到数据不丢,就必须要持久化
  • 要作到服务高可用,就必须要有备用(复本),不管是应用结点仍是数据结点
  • 要作到复制,就会有数据一致性的问题。
  • 咱们不可能作到100%的高可用,也就是说,咱们能作到几个9个的SLA。

一致性sql

1)Weak 弱一致性:当你写入一个新值后,读操做在数据副本上可能读出来,也可能读不出来。好比:某些cache系统,网络游戏其它玩家的数据和你没什么关系,VOIP这样的系统,或是百度搜索引擎(呵呵)。服务器

2)Eventually 最终一致性:当你写入一个新值后,有可能读不出来,但在某个时间窗口以后保证最终能读出来。好比:DNS,电子邮件、Amazon S3,Google搜索引擎这样的系统。网络

3)Strong 强一致性:新的数据一旦写入,在任意副本任意时刻都能读到新值。好比:文件系统,RDBMS,Azure Table都是强一致性的。架构

 

方案:异步

1. MySQL Replication(半同步->异步同步)搜索引擎

  • master-slave
  • master-slave-slave
  • 优势:设计

    1. 架构比较简单,使用原生半同步复制做为数据同步的依据;
    2. 双节点,没有主机宕机后的选主问题,直接切换便可;
    3. 双节点,需求资源少,部署简单;

    缺点:3d

    1. 彻底依赖于半同步复制,若是半同步复制退化为异步复制,数据一致性没法获得保证;
    2. 须要额外考虑haproxy、keepalived的高可用机制。

2. Mysql Clusterblog

优势:

  1. 所有使用官方组件,不依赖于第三方软件;
  2. 能够实现数据的强一致性;

缺点:

  1. 国内使用的较少;
  2. 配置较复杂,须要使用NDB储存引擎,与MySQL常规引擎存在必定差别;
  3. 至少三节点;

共享存储SAN

优势:

  1. 两节点便可,部署简单,切换逻辑简单;
  2. 很好的保证数据的强一致性;
  3. 不会由于MySQL的逻辑错误发生数据不一致的状况;

缺点:

    1. 须要考虑共享存储的高可用;
    2. 价格昂贵;

DRBD

是一个以linux内核模块方式实现的块级别同步复制技术。它经过网卡将主服务器的每一个块复制到另一个服务器块设备上,并在主设备提交块以前记录下来。

 

MySQL Fabric

简单来讲就是数据分片下的M/S的读写分离模式。这个方案的的可用性能够达到99%

相关文章
相关标签/搜索