读书笔记5大型网站的高可用架构

一、网站实现高可用的手段

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

二、可用性度量与考核

  首先,不得不说:要保证一个网站永远完全可用几乎是一件不可能完成的任务(Mission Impossible,是不是有点碟中谍的感觉)

读书笔记5大型网站的高可用架构

   (1)如何度量网站可用性?

  一个神奇的数字—9!你有几个9,就代表了你的可用性。例如QQ可用性达到了4999.99%

  ①29=基本可用  ②39=较高可用  ③49=具有自动恢复能力的高可用  ④59=极高可用->理想状态

  那么,可用性的9又是怎么计算出来的呢:

  ①网站不可用时间=故障修复时间点-故障发现时间点

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

  (2)如何考核网站可用性?

  广泛采用故障分的,它是对网站故障进行分类加权计算故障责任的方法。一般会给每个分类的故障设置一个权重(例如事故级故障权重为100A类为20等),其计算公式为:故障分=故障时间(分钟)*故障权重。公司对技术团队的考核一般会参考故障分,例如某团队今年发生了几个事故级故障,那么其绩效考核估计受到很大影响,年终奖什么的就悲剧了。

三、高可用的架构

  目前,通常企业级应用系统(特别是政府部门和大企业的应用系统)一般会采用安规的软硬件设备,如IOEIBM的小型机、Oracle数据、EMC存储设备)系列。而一般互联网公司更多地采用PC级服务器(x86),开源的数据库(MySQL)和操作系统(Linux)组建廉价且高容错(硬件故障是常态)的应用集群。

  (1)设计的目的?

  保证服务器硬件故障服务依然可用,数据依然保存并能够被访问

  (2)主要的手段?

  数据和服务的①冗余备份以及②失效转移

  对于服务而言,一旦某个服务器宕机,就将服务切换到其他可用的服务器上;

  对于数据而言,如果某个磁盘损坏,就从备份的磁盘(事先就做好了数据的同步复制)读取数据。

四、高可用的应用

  应用层处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性

读书笔记5大型网站的高可用架构

PS提到无状态特性,不得不说下Http协议。我们常常听到说,Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息。之所以我们在使用ASP.NET WebForm开发中会感觉不到Http的无状态特性,完全是因为Microsoft帮我们实现了ViewState,它是ASP.NET WebForm中保存页面信息的基本单位,本质是一个HTML中的隐藏域,回调时会将这个隐藏域中的数据提交到服务器端。  

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

读书笔记5大型网站的高可用架构

  (2)应用服务器集群的Session管理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzwysd.html