网站架构总结

1. 网站架构模式:

    分层 、分割、分布式、集群、缓存、异步、冗余、自动化、安全

2. 瞬时响应:网站的高性能架构

    1). Web前端性能优化

         a. 浏览器访问优化:

         b. CDN加速:

         c. 反向代理:缓存静态资源

     2). 应用服务器性能优化:

          a. 分布式缓存:网站性能优化的第一定律:优先考虑使用缓存优化性能。

          b. 异步操作:使用消息队列将调用异步化,可改善网站的扩展性。事实上使用消息队列还可改善网站系统的性能。消息队列具有很好的削峰作用。需要适当修改业务流程进行配合。

          c. 使用集群

          d. 代码优化:多线程,资源复用(单例,线程池等),数据结构:hash等,垃圾回收

3. 万无一失:网站的可用性架构

    1). 高可用的应用:

          a. 通过负载均衡进行无状态服务的失效转移:对于应用服务器集群,实现这种服务可用状态实时监测、自动转移失败任务的机制是负载均衡。负载均衡服务器通过心跳监测机制判断服务器是否可用。

          b. 应用服务器集群的Session管理:利用独立部署的Session服务器(集群)统一管理Session应用服务器每次读写Session时,都访问Session服务器。

    2). 高可用的应用:

          a. 分级管理:运维上将服务器进行分级管理,核心应用和服务优先使用更好的硬件,在运维响应速度上也格外迅速。同时在服务部署上也进行必要的隔离,避免故障的连锁反应。低优先级的服务通过启动不同的线程

              或者部署在不同的虚拟机上,核心服务和数据甚至要部署在不同的地址数据中心。

          b. 超时设置:

          c. 异步调用:

          d. 服务降级:在网站访问高峰期,为了保证核心应用和功能的正常运行,需要对服务进行降级。降级有两种手段:拒绝服务及关闭服务。

             拒绝服务:拒绝低优先级应用的调用,减少服务调用并发数,确保核心应用正常使用;或者随机拒绝部分请求调用,节省资源,让另一部分请求得以成功,避免要死大家一起死的惨剧。

             关闭功能:关闭部分不重要的服务,或者服务内部关闭部分不重要的功能,以节省系统开销,为重要的服务和功能让出资源。

          e. 幂等性设计:保证服务重复调用的和调用一次产生的结果相同,即服务具有幂等性。

   3). 高可用的数据:保证数据存储高可用的手段主要是数据备份和失效转移机制。

   4). 高可用网站的软件质量保证:

         a. 网站发布:通常通过发布脚本来完成发布。发布过程中,每次关闭的服务器都是集群中的一小部分,并在发布完成后立即可以访问,因此整个发布过程不影响用户使用。

         b. 自动化测试:自动化测试工具可以一键完成系统部署,测试数据生成、测试执行、测试报告生成等全部测试过程

         c. 预发布验证:沙箱测试,与真实线上环境尽量保持一致。

         d. 代码控制:a. 主干开发,分支发布:b. 分支开发,主干发布:

             这两种方式各有优缺点。主干开发,分支发布,主干代码反应目前整个应用的状态,一目了然,便于管理和控制,也利于持续集成。分支开发,主干发布方式,各个分支独立进行,互不干扰,可以使不同发布周期的开发

             在同一应用中进行。

         e. 自动化发布:人干预越少,自动化程度越高,引入故障的可能性就越小,火车准点到达,大家按时下班的可能性就越大。

         f. 灰度发布:

   5). 网站运行监控:不允许没有监控的系统上线。

        a. 监控数据采集:用户行为日志收集;服务器性能监控

        b. 监控管理:系统报警;失效转移;自动优雅降级

 

你可能感兴趣的:(网站架构总结)