大型网站架构

高性能

      网站性能测试:

             指标:

                    1、响应时间

                    2、并发数

                    3、吞吐量

                    4、性能计数器

             测试方法:

                    性能测试(可接收范围内)

                    负载测试(临界值,继续则性能下降)

                    压力测试(最大压力承受能力,继续则系统崩溃)

                    稳定性测试(运行长时间,检测稳定性)

              性能报告:

                     并发数

                     响应时间

                     TPS

                     错误率

                     Load

                     内存

                     备注

               优化策略:

                      性能分析(日志-响应时间-->监控数据-影响性能主要因素-内存、磁盘、网络、CPU、代码、架构、系统资源)

                      性能优化(如下)

      web前端优化

            浏览器优化

                   1、减少http请求(合并CSS、JS、图片)

                   2、使用浏览器缓存(设置http头中的Cache-Control、Expires)

                   3、启用压缩(html、css、js启动Gzip压缩)

                   4、css最上面,js最下面

                   5、减少cookie传输(静态资源独立域名访问)

             CDN加速(缓存静态资源)

             反向代理(缓存静态资源、负载均衡)

      应用服务器优化

             分布式缓存(memcached、redis)

             异步(消息队列)

             集群(负载均衡)

             代码优化(多线程、资源复用<单例、对象池>、数据结构、垃圾回收<新生代、老年代的大小设置>)

      存储优化

             固态硬盘、LSM树(NoSql)、HDFS

高可用

        度量=(1-网站不可用时间/年度总时间)*100%

        考核=故障时间(分钟)*故障权重

        高可用的应用:

               1、通过负载均衡进行无状态服务的失效转移。

               2、应用服务器集群的Session管理

         高可用的服务:

                1、分级管理(核心使用好的硬件设备、隔离避免故障连锁)

                2、超时设置(一旦超时,抛异常,释放资源)

                3、异步调用(避免一个服务失败导致整个应用请求失败)

                4、服务降级(关闭部分不重要功能)

                5、冥等性设计(服务重复调用)

          高可用的数据:

                 1、CPA原理(数据可用性、数据一致性、分区耐受性,无法同时满足)

                 2、数据备份

                 3、失效转移

          软件质量保证:

                 1、网站发布(运行中发布)

                 2、自动化测试

                 3、预发布验证(预发布服务器,与正式不同的是没有配在负载均衡服务器上,外部用户无法访问)

                 4、代码控制(分支开发,主干发布)

                 5、自动化发布(周四发布日)

                 6、灰度发布(部分新版,部分老版)

          网站运行监控

                 监控数据采集

                        1、用户行为日志收集

                        2、服务器性能监控

                        3、运行数据报告

                 监控管理

                        系统报警

                        失效转移

                        自动降级