案例2:维基百科高性能架构演化设计

www.wikipedia.org  

     相比同流量级别有百度、谷歌,背后市值数百亿美金、员工上万、服务器无数,服务器数百台,维护人员十余名。

     网站建立在LAMP上。

     架构组成部分:

            GeoDNS:可将域名解析到离用户最近的服务器

            LVS:       基于Linux的开源负载均衡服务器

            Squid:    基于Linux的开源反向代理服务器

            Lighttpd:   开源的应用服务器(更轻量、更快速,许多网站使用它作为图片服务器)

            PHP:      Web应用程序开发语言

            Memcached: 开源分布式缓存系统

            Lucene:开源全文搜索引擎

            MySQL:开源关系数据库管理系统

      性能优化策略:

      前端性能优化:

             (网站前端,一般包括DNS服务、CDN服务、反向代理服务、静态资源服务等)

              CDN服务(缓存热点词条内容页面、部署在离客户浏览器最近的地方)

              -->LVS(负载均衡)-->反向代理服务器Squid集群(核心,缓存热点词条)

              -->LVS(负载均衡)-->Apache应用服务器集群

              CDN缓存准则:

                      1、内容页面不包括动态信息

                      2、内容页面有唯一REST风格URL

                      3、HTML响应头写入缓存控制信息

       服务器性能优化:

              PHP服务器(硬件改善)

              APC(PHP字节码缓存模块,加速代码执行减少资源消耗)

              Imagemagick(图片处理转化)

              Tex(进行文本格式化,特别是将科学公式内容转换成图片格式)

              替换PHP字符串查询函数strtr(),使用更优化的算法重构

       后端性能优化:

              后端服务(包括缓存、存储、数据库)

              主要手段:使用缓存

              缓存使用策略:

                     1、热点特别集中的数据直接缓存到应用服务器的本地内存

                     2、缓存数据的内容尽量使应用服务器可以直接使用的格式,如HTML

                     3、使用缓存服务器存储session对象

                     4、memcache持久化连接

              MySQL优化:

                     1、使用较大的服务器内存

                     2、使用RAID0磁盘阵列加速磁盘访问(降低数据库持久可靠性,弥补手段,主从复制,数据库异步备份等)

                     3、数据库事务一致性设置在较低水平,加快宕机恢复速度

                     4、如果master数据库宕机,立即将应用切到salve数据库,同时关闭数据库写服务。

                          (业务后退一步,技术前进一大步)

相关推荐