欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

案例2:*高性能架构演化设计

程序员文章站 2024-01-10 13:40:01
...

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数据库,同时关闭数据库写服务。

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