《大型网站技术架构原理与解析》第五章-万无一失:网站高可用架构
参考书籍《大型网站技术核心原理与案例分析》
网站的可用性描述可有效访问的特性,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 监控管理
系统报警、失效转移、自动优雅降级