一、高可用标准
互联网业界通常用多少个9来衡量网站的可用性,如中国联通为4个9,即99.99%可用,意味着一年只有53分钟不可用。
使用考核指标方法,从管理的角度提高可用。如下权重表:
二、高可用架构
分层:应用层、服务层、数据层。
三、高可用应用
核心思路:“无状态性”,应用服务器不保存业务的上下文信息,而是依据每次请求提交的数据进行响应的业务逻辑处理,多个服务之间完全对等。
方法:
(1)通过负载均衡进行无状态服务的失效转移
(2)集群session管理
- 复制(早期方案,废弃)
- 绑定(同一IP下,负载到同一个机器上,废弃)
- 利用cookie记录session(小巧方便,大多数都在用。)
- session服务器(主要解决方案)
四、高可用服务
- 分级管理(更重要的放在好机器上)
- 超时设置(超时后转移到其他服务器处理)
- 异步调用
- 服务降级(拒绝服务/关闭服务)
- 幂等性设计(验证请求唯一)
五、高可用数据
数据特性:持久性、可访问性、一致性。
CAP原理:存储系统无法同时满足数据一致性、数据可用性、分区耐受性(系统具有跨网络分区的伸缩性)这三个条件。
数据一致性分类:数据强一致、数据用户一致、数据最终一致。
数据备份
冷备份:不能保证数据最终一致,同时也不能保证数据可用。
热备份:异步热备和同步热备两种方式。
失效转移
(1)失效确认
方法:心跳测试、程序访问失败报告。
(2)访问转移
(3)数据恢复
六、软件质量保证-自动化
(1)网站发布
(2)自动化测试
(3)预发布验证
(4)代码控制
(5)自动化发布
(6)灰度发布(回滚上一个版本)
七、网站运行监控
数据监控采集
(1)用户行为日志收集:pv/uv、IP、页面停留时长等。
(2)服务器性能监控
(3)运行数据报告
监控管理
(1)系统报警
(2)失效转移
(3)自动优雅降级:关闭非核心功能,释放机器计算能力。