《大型网站技术架构:核心原理与案例分析》-- 读书笔记 (2) : 大型网站核心架构要素(2) -- 可用性

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 监控管理:系统报警、失效转移、自动优雅降级

 

posted @ 2017-04-25 20:05  一剑侵心  阅读(137)  评论(0)    收藏  举报