高可用性和双机热备浅析

文章探讨了构建高可用系统的关键要素,包括组件的冗余和自动故障转移,以确保服务的连续性。介绍了分层架构和微服务架构在高可用性中的应用,特别提到了Nginx、Redis、Kafka等组件的高可用方案。还讨论了双机热备的概念,如Keepalived在LVS、Nginx和MySQL中的应用,以实现服务层和存储层的高可用性。

在用户眼里,业务需要永远正常对外提供服务,这就要求应用系统的高可用(High availability,即 HA)。高可用主要是针对架构而言,第一步一般会采用分层的思想将一个庞大的应用系统拆分成应用层、中间件、数据存储层等独立的层,每一层再拆分成更细粒度的组件;第二步就是让每个组件对外提供服务,毕竟每个组件都不是孤立存在的,都需要互相协作,对外提供服务才有意义;第三步就是保证架构中所有组件以及对外暴露服务都要做到高可用,任何一个组件或其服务没做高可用,都意味着系统存在风险。

1、高可用设计

何组件要做高可用,都离不开「冗余」和「自动故障转移」,众所周知单点是高可用的大敌,所以组件一般是以集群(至少两台机器)的形式存在的,这样只要某台机器出现问题,集群中的其他机器就可以随时顶替,这就是「冗余」。简单计算一下,假设一台机器的可用性为 90%,则两台机器组成的集群可用性为 1-0.1*0.1 = 99%,所以显然冗余的机器越多,可用性越高。
但光有冗余还不够,如果机器出现问题,需要人工切换的话也是费时费力,而且容易出错,所以我们还需要借助第三方工具(即仲裁者)的力量来实现「自动」的故障转移,以达到实现近实时的故障转移的目的,近实时的故障转移才是高可用的主要意义。
在业界一般用几个九来衡量系统的可用性,如下

可用级别 系统可用性% 宕机时间/年
不可用 90% 36.5天
基本可用 99% 87.6小时
较高可用 99.9% 8.76小时
高可用 99.99% 52.56
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值