大型网站核心架构中的"高可用性"设计方法
大型网站通常都会有上万台服务器,每天都必定有一些服务器器宕机;
高可用的目标
高可用的目标:当服务器宕机的时候,服务或应用依然可用!假设系统中任何以太或者多台服务器宕机时,以及出现各种不可预测的问题时,系统整体是否依然可用
高可用的前提:必然出现服务器宕机
高可用的主要手段
高可用的主要手段是冗余,任何以太服务器宕机都不会影响应用的整体可用,也不会导致数据丢失
- 应用部署在多台服务器上同时提供访问
- 数据存储在多台服务器上相互备份
对应用服务器而言
多台应用服务器通过负载均衡设备组成一个集群共同对外提供服务器
任何以太服务器宕机,只需要把请求切换到其它服务器可实现应用的高可用;
注意:应用服务器上不能保存请求的会话信息,否则服务器宕机,会话丢失,即使将请求转发到其他服务器也无法完成业务处理了
对储存服务器而言
需要对数据库进行实时备份,当服务器宕机时需要把数据访问转移到可用的服务器上,并进行数据恢复以保证继续有服务器宕机的时候数据依然可用;
开发过程的质量保证
- 预发布验证
- 自动化测试
- 自动化发布
- 灰度测试
减少将故障引入线上环境的可能,避免故障范围扩大