《大型网站技术架构:核心原理与案例分析》阅读笔记03

网站的高可用架构

网站的可用性( Availability )描述网站可有效访问的特性(不同于另一个网站运营指标: Usability, 通常也被译作可用性,但是后者强调的是网站的有用性,即对最终用户的使用价值),相比于网站的其他非功能特性,网站的可用性更牵动人们的神经,大型网站的不可用事故直接影响公司形象和利益,许多互联网公司都将网站可用性列入工程师的绩效考核,与奖金升迁等利益挂钩。

网站可用性的度量与考核

网站可用性度量

网站不可用时间(故障时间) =故障修复时间点-故障发现(报告)时间点

网站年度可用性指标= ( 1-网站不可用时间/年度总时间) *100%

对于大多数网站而言,2个9是基本可用,网站年度不可用时间小于88小时; 3个9是较高可用,网站年度不可用时间小于9小时; 4个9是具有自动恢复能力的高可用,网站年度不可用时间小于53分钟; 5个9是极高可用性,网站年度不可用时间小于5分钟。

网站可用性考核

可用性指标是网站架构设计的重要指标,对外是服务承诺,对内是考核指标。从管理层面,可用性指标是网站或者产品的整体考核指标,具体到每个工程师的考核,更多的是使用故障分。

高可用的网站架构

实现上述高可用架构的主要手段是数据和服务的冗余备份及失效转移,一旦某些服务器宕机,就将服务切换到其他可用的服务器上,如果磁盘损坏,则从备份的磁盘读取数据。

典型的分层模型是三层,即应用层、服务层、数据层;各层之间具有相对独立性,应用层主要负责具体业务逻辑处理;服务层负责提供可复用的服务;数据层负责数据的存储与访问。中小型网站在具体部署时,通常将应用层和服务层部署在一起,而数据层则另外部署。

在复杂的大型网站架构中,划分的粒度会更小、更详细,结构更加复杂,服务器规模更加庞大,但通常还是能够把这些服务器划分到这三层中。

高可用的应用

应用层主要处理网站应用的业务逻辑,因此有时也称作业务逻辑层,应用的一个显著特点是应用的无状态性。

所谓无状态的应用是指应用服务器不保存业务的上下文信息,而仅根据每次请求提交的数据进行相应的业务逻辑处理,多个服务实例(服务器)之间完全对等,请求提交到任意服务器,处理结果都是完全一样的。

通过负载均衡进行无状态服务的失效转移

负载均衡,顾名思义,主要使用在业务量和数据量较高的情况下,当单台服务器不足以承担所有的负载压力时,通过负载均衡手段,将流量和数据分摊到一个集群组成的多台服务器上,以提高整体的负载处理能力。目前,不管是开源免费的负载均衡软件还是昂贵的负载均衡硬件,都提供失效转移功能。在网站应用中,当集群中的服务是无状态对等时,负载均衡可以起到事实上高可用的作用。

应用服务器集群的Session管理

Web应用中将这些多次请求修改使用的上下文对象称作会话( Session),单机情况下,Session可由部署在服务器上的Web容器( 如JBoss)管理。在使用负载均衡的集群环境中,由于负载均衡服务器可能会将请求分发到集群任何一台应用服务器上,所以保证每次请求依然能够获得正确的Session比单机时要复杂很多。

高可用的服务

可复用的服务模块为业务产品提供基础公共服务,大型网站中这些服务通常都独立分布式部署,被具体应用远程调用。可复用的服务和应用-样,也是无状态的服务,因此可以使用类似负载均衡的失效转移策略实现高可用的服务。

高可用的数据

缓存服务不是数据存储服务,缓存服务器宕机引起缓存数据丢失导致服务器负载压力过高应该通过其他手段解决,而不是提高缓存服务本身的高可用。

数据备份

数据备份是一种古老而有效的数据保护手段,早期的数据备份手段主要是数据冷备,即定期将数据复制到某种存储介质上并物理存档保管,如果系统存储损坏,那么就从冷备的存储设备中恢复数据。

失效转移

若数据服务器集群中任何一台服务器宕机,那么应用程序针对这台服务器的所有读写操作都需要重新路由到其他服务器,保证数据访问不会失败,这个过程叫作失效转移。

失效转移操作由三部分组成:失效确认、访问转移、数据恢复。

高可用网站的软件质量保证

在网站运维实践中,除了网络、服务器等硬件故障导致的系统可用性风险外,还有来自软件系统本身的风险。

网站运行监控“

不允许没有监控的系统上线”,这是许多网站架构师在做项目,上线评审时常说的一句话。网站运行监控对于网站运维和架构设计优化至关重要。

原文地址:https://www.cnblogs.com/baimafeima/p/13097238.html