1. 网站可用性的度量与考核
1.1 网站可用性度量
网站不可用时间(故障时间)=故障修复时间点网故障发现(报告)时间点
网站年度可用性指标=(11网站不可用时间/年度总时间)年100%
1.2 网站可用性考核
可用性指标是网站架构设计的重要指标,对外是服务承诺,对内是考核指标。从管理层面,可用性指标是网站或者产品的整体考核指标,具体到每个工程师的考核,更多的是使用故障分。
2. 高可用的网站架构
3. 高可用的应用
3.1 通过负载均衡进行无状态服务的失效转移
负载均衡,顾名思义,主要使用在业务量和数据量较高的情况下,当单台服务器不足以承担所有的负载压力时,通过负载均衡手段,将流量和数据分摊到一个集群组成的多台服务器上,以提高整体的负载处理能力。
3.2 应用服务器集群的Session管理
- Session复制
- Session绑定
- 利用Cookie记录Session
- Session服务器
4. 高可用的服务
- 分级管理
- 超时设置
- 异步调用
- 服务降级
- 幂等性设计
5. 高可用的数据
5.1 CAP原理
- 数据持久性 : 保证数据可持久存储,在各种情况下都不会出现数据丢失的问题。为了实现数据的持久性,不但在写入数据时需要写入持久性存储,还需要将数据备份一个或多个副本,存放在不同的物理存储设备上,在某个存储故障或灾害发生时,数据不会丢失。
- 数据可访问性 : 在多份数据副本分别存放在不同存储设备的情况下,如果一个数据存储设备损坏,就需要将数据访问切换到另一个数据存储设备上,如果这个过程不能很快完成(终端用户几乎没有感知),或者在完成过程中需要停止终端用户访问数据,那么这段时间数据是不可访问的。
- 数据一致性 : 在数据有多份副本的情况下,如果网络、服务器或者软件出现故障,会导致部分副本写入成功,部分副本写入失败。这就会造成各个副本之间的数据不一致,数据内容冲突。
CAP原理认为,一个提供数据服务的存储系统无法同时满足数据一致性(Consistency)、数据可用性(Availibility)、分区耐受性(PatitionTolerance,系统具有跨网络分区的伸缩性)这三个条件。
数据一致性又可分为 :
- 数据强一致 : 各个副本的数据在物理存储中总是一致的;数据更新操作结果和操作响应总是一致的,即操作响应通知更新失败,那么数据一定没有被更新,而不是处于不确定状态。
- 数据用户一致 : 即数据在物理存储中的各个副本的数据可能是不一致的,但是终端用户访问时,通过纠错和校验机制,可以确定一个一致的且正确的数据返回给用户。
- 数据最终一致 : 这是数据一致性中较弱的一种,即物理存储的数据可能是不一致的,终端用户访问到的数据可能也是不一致的(同一用户连续访问,结果不同;或者不同用户同时访问,结果不同),但系统经过一段时间(通常是一个比较短的时间段)的自我恢复和修正,数据最终会达到一致
5.2 数据备份
定期将数据复制到某种存储介质(磁带,光盘……)上并物理存档保管,如果系统存储损坏,那么就从冷备的存储设备中恢复数据。
数据热备可分为两种:异步热备方式和同步热备方式。
异步热备方式:
同步热备方式 :
5.3 失效转移
若数据服务器集群中任何一台服务器宕机,那么应用程序针对这台服务器的所有读写操作都需要重新路由到其他服务器,保证数据访问不会失败,这个过程叫作失效转移。
失效转移操作由三部分组成:失效确认、访问转移、数据恢复。