卡飞资源网

专业编程技术资源共享平台

[高可用系统设计]-冗余设计

一、集群冗余

  • 1.应用系统设计成无状态的,系统则可以进行横向扩展
  • 2.避免单点故障:冗余【集群化】

二、存储冗余

存储高可用的实现方案,本质是通过将数据复制到多个存储设备,通过数据冗余的方式来实现存储的高可用。

三、双机机制:

1.主备复制:主备架构中的“备机”主要起到一个备份作用,并不承担实际的业务放入读写操作,如果要把备机改为主机,需要人工干预进行主备切换。



  • 优点:实现简单,对于客户端,不需要感知备机的存在;对于主机和备机,主备只需要进行数据复制,无须进行状态判断和主备切换等复杂的操作
  • 缺点:备机只做备份,并不提供读写操作,硬件成本浪费;故障后需要人工干预操作,不能自动恢复,业务故障恢复需要时间消耗。
  • 场景:绝大部分的存储系统都具有主备复制的功能,例如:MySQL、Redis、MongoDB等

2.主从复制:主机提供读写操作,从机只提供读操作不提供写操作。


  • 优点:在主机故障时,读操作的相关业务可以继续提供服务;从机提供读操作,提高了从机的业务使用,避免硬件资源浪费。
  • 缺点:主从复制架构,客户端需要感知主从关系并将不同的业务操作发给不同的主机进行处理,复杂度比主备复制高;从机提供读业务,如果主从复制延迟较大,可能会因为数据不一致导致业务出现问题。
  • 场景:针对写少读多的业务应用,采用主从复制的存储架构较多。比如,论坛新闻咨询网站类业务系统应用,读操作数量是写操作数量的10倍甚至100倍以上,较适合采用主从复制。

主主复制

主主复制:两台服务器都是主机,互相将数据复制给对方,客户端选择其中一台机器进行读写操作。



3.双机切换:主备复制和主从复制方案存在两个共性问题。

1.主机故障后,无法进行写操作;

2.如果主机无法恢复,需要人工干预指定新的主机角色。

为了解决这两个问题,可以采用双机切换的机制。

双机切换设计:

(1).主备间状态判断:

状态传递方式:应用间互相连接传递,还是采用第三方仲裁

状态检测内容:心跳响应,机器是否掉电、进程是否存在、响应时间等

(2).切换决策:

切换时机:备机升级为主机的策略?1.机器掉电,2.主机进程不存在,3.主机响应时间超过特定阈值。

切换机制:1.自动完成,2.半自动 例如,系统判断当前需要切换状态信息,由人工做最终确认操作。

数据不一致:当原有故障主机恢复后,新旧主机之间可能存在数据不一致的问题。

3.架构模式

互连式:主备机直接建立状态传递渠道

中介式:在主备机之外引入第三方中介【如ZooKeeper】,主备之间不直接连接,而都去连接中介,通过第三方中介来传递状态信息。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言