性能提升的14条规则(二)

规则2——使用内容发布网络
用户平均的宽带每年都在增长,但用户对你的Web服务器的亲进度任然受到页面响应时间的影响。网站最初通常将其所有的服务器放在同一个地方。当用户群增加时,公司就必须面对服务器放置地点不再适用的事实——有必要在多个地理位置不同的服务器上部署内容。
作为实现地理位置分离的第一步,不要尝试使用分布式架构重新设计你的Web应用程序。这样的应用程序决定了重新设计将带来令人恐惧的任务,如同步会话状态和在服务器放置地点之间复制数据库事务。重新设计这一步骤会推迟——甚至根本无法实现——缩短用户和你内容之间的距离这一愿望。
如果应用程序Web服务器(Application Web Sever)离用户更近,则一个HTTP请求的响应时间将缩短。另一方面,如果组件Web服务器(Component Web Sever)离用户更近,则多个HTTP的请求响应时间将缩短。与其开始重新设计应用程序这一艰难任务,以便将应用程序Web服务器分散开,不如首先将组件Web服务器分散开。这不仅能达到响应时间大幅减少的目的,还很容易实现内容发布网络。
内容发布网络(Content Delivery Networks)
内容发布网络(CDN)是一组分布在多个不同地理位置的Web服务器,用于更加有效地向用户发布内容。通常只在讨论性能问题时会提到它的性能,但它还能节省成本。在优化性能时,向特定用户发布内容的服务器的选择基于对网络可用度的测量。例如:CDN可能选择网络阶跃数最小的服务器,或者具有最短响应时间的服务器。
除了缩短响应时间之外,CDN还可以带来其它优势。他们的服务器包括备份、扩展存储能力和进行缓存。CDN还有助于缓和Web流量峰值压力。
依赖CDN的一个缺点是你的响应时间可能会收到其它网站——甚至很可能是你的竞争对手流量的影响。CDN服务提供商在其所有客户之间共享Web服务器组件。另一个缺点是无法直接控制组件服务器所带来的特殊麻烦。例如:修改HTTP相应头必须通过服务提供商来完成,而不是你的工作团队来完成。最后,如果CDN服务的性能下降了,你的工作质量也随之下降。
CDN用于发布静态内容,如图片、脚本、样式表和Flash。提供动态HTML页面会引人特俗额储存需求——数据库连接、状态管理、验证、硬件和OS优化等。这些复杂性超越了CDN的能力范围。另一方面,静态文件更容易存储并具有较少的依赖性。这就是为什么对于地理上的分散的用户人群来说,CDN能轻易地得到响应速度上的提高。

posted @ 2015-06-16 14:43  范丁文  阅读(157)  评论(0编辑  收藏  举报