2. 可用性
网站高可用的主要手段是冗余,应用部署在多台服务器上同时提供访问,数据存储在多台服务器上互相备份。
对于应用服务器而言,多台应用服务器通过负载均衡设备组成一个集群共同对外提供服务。但是一个前提条件是应用服务器上不能保存请求的会话信息,否则服务器宕机,会话丢失,即使将用户请求转发到其它服务器上也无法完成业务处理。
2.1 高可用的网站架构
分层模型:应用层、服务层、数据层。大型网站分层的粒度更细,每层再按业务拆分
2.2 通过负载均衡进行无状态的失效转移
2.3 应用服务器集群的session管理
2.3.1 session复制 -- 集群规模较大时,不可取
2.3.2 session绑定 -- 对同一用户的请求,总是发送到集群中的同一台服务器。当此服务器宕机时,session丢失,不可取
2.3.3 使用cookie记录session -- 不可取。大小受限; 每次请求响应均需要传输cookie,影响性能; 如果用户关闭cookie,则导致访问不正常
2.3.4 session服务器(集群) -- 应用服务器每次读写session时,均访问session服务器
2.4 高可用的服务
2.4.1 分级管理:服务分高优先级和低优先级。高优先级的服务独立部署。
2.4.2 超时设置
2.4.3 异步调用
2.4.4 服务降级:高峰期间,拒绝或关闭非核心业务。比如双十一期间关闭”评价“服务
2.4.5 幂等性设计: 服务层保证服务重复调用和调用一次的结果相同
2.5 高可用的数据
2.5.1 CAP原理:提供数据服务的存储系统无法同时满足数据一致性(Consistency)、数据可用性(Availibility)、分区耐受性(Partition Tolerance,系统具有跨网络分区的伸缩性)这三个条件。大型网站应用中,通常会选择强化分布式存储系统的可用性(A)和伸缩性(P),而在某种程度上放弃一致性(C)。
2.5.2 数据备份
2.6 网站运行监控
2.6.1 监控数据采集:用户行为日志收集、服务器性能监控、运行数据报告
2.6.2 监控管理:系统报警、失效转移、自动优雅降级