《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构

参考书籍《大型网站技术核心原理与案例分析》

网站的可用性描述可有效访问的特性,Availability.

5.1 网站可用性的度量与考核

网站最终呈现在用户面前,经过了很多环节,中间存在很多问题:
DNS被劫持、CDN服务挂掉、网站服务器宕机、网络交换机可能失效、硬盘会损坏、网卡会松动、机房停电、空调失灵、程序会有bug、黑客攻击、促销带来的大量访问、第三方合作伙伴的服务可不可用。

5.1.1 网站可用性度量

4个9原则,99.99%也就是说一年中大约有53分钟仍然不可用。

网站不可用时间 = 故障修复时间点 - 故障发现报告时间点
网站年度可用性指标 = (1-网站不可用/年度总时间)x 100%

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

5.1.2 网站可用性考核

可用性,对外是服务承诺、对内是考核指标。

《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构

5.2 高可用的网站架构

《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
心跳检测、负载均衡、服务注册中心来实现高可用。
无论是应用层还是服务层都是如此。

5.3 高可用的应用

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

《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构

5.3.2 应用服务器集群的Session管理

1、session复制(每台服务器保存所有用户session信息)
数据量一大,内存不够的情况会出现,通信进行复制占用服务器和网络大量的资源。

《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构

2、Session绑定
《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
特定ip利用hash算法会请求同一个服务器。

但是不符合高可用。

3、利用Cookie记录session
《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
cookie纯属影响新能,但是简单、可用性高。

4、Session服务器
《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
这种解决方案是将应用服务器的状态分离,分为无状态和有状态的session服务器(分布式缓存、数据库等技术)。

5.4 高可用服务

1、分级管理
2、超时设置
3、异步调用
4、服务降级(关闭服务或者拒绝服务)双十一时关闭确认收货、评价等功能
5、幂等性设计(重复调用时要返回相同的结果)

5.5 高可用的数据

《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构

5.5.1 CAP原理

高可用数据有几层含义:
《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
副本、副本切换、副本一致性保持。

《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
CAP理论认为CAP只能满足其中2个特性,无法同时满足三个条件。

数据一致性分为:
强一致、数据用户一致、数据最终一致。
《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构

5.5.2 数据备份

冷备优点是简单、廉价,但是不能保证数据最终一致。(定期备份的)

因此数据热备与冷备一起使用,热备又分为:异步热备方式、同步热备方式。

《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
zk等分布式框架式一般写成功就返回。

关系数据库热备机制就是通常所说的master-slave同步机制。ms机制不但解决数据备份问题,还改善数据库性能,通常使用读写分离的方法。

5.5.3 失效转移

《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
接着就是访问转移、数据恢复。

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

《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构

通常手段有自动化测试、自动化发布、预发布验证

5.6.4 代码控制

1、主干开发、分支发布
2、分支开发、主干发布
《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构

5.7 网站运行监控

5.7.1 监控数据采集

1、用户行为日志收集
包括浏览器操作系统、版本、ip地址、页面访问路径、页面停留时间等、pv/uv、分析用户行为、优化网站设计、个性化营销与推荐。
服务端收集、客户浏览器收集。

2、服务器性能监控
sysload\io\内存占用等
3、运行数据报告
缓冲命中率、平均响应延迟时间、每分钟发送邮件数目、待处理的任务总数

5.7.1 监控管理

系统报警、失效转移、自动优雅降级

5.8 小结

《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构