《高性能网站建设指南》笔记-2 规则2——使用内容发布网络

网站最初通常将其所有的服务器放在同一个地方。当用户群增加时,公司就必须面对服务器放置地点不再适用的事实——有必要在多个地理位置不同的服务器上部署内容。

作为实现地理位置分离的第一步,不要尝试适用分布式架构重新设计你的web应用程序。这样的应用程序决定了重新设计将带来令人恐惧的任务,如同步会话状态和在服务器放置地点之间复制数据库事务。重新设计这一步骤会推迟——甚至根本无法实现——缩短用户和你的内容之间的距离这一愿望。

如果应用程序web服务器(application web server)离用户更近,则一个http请求的响应时间将缩短。另一个方面,如果组件web服务器(component web server)离用户更近,则多个http请求的响应时间将缩短。

与其开始重新设计应用程序这一艰难任务,以便将应用程序web服务器分散开,不如首先将组件web服务器分散开。这不仅能达到响应时间大幅减少的目的,还很容易实现。

内容发布网络 content delivery networks

内容发布网络(CDN)是一组分布在多个不同地理位置的web服务器,用于更加有效地向用户发布内容。

无论如何也不要使用http重定向来将用户指向到本地服务器,这会使web页面反应变慢。

除了缩短响应时间之外,CDN还可以带来其他优势。他们的服务包括备份,扩展存储能力和进行缓存。CDN还有助于缓和web流量峰值压力。

依赖CDN的一个缺点是你的响应时间可能会受到其他网站(甚至是你的竞争对手)流量的影响。CDN服务提供商在其所有客户之间共享web服务器组。

另一个缺点是无法直接控制组件 服务器带来的特殊麻烦。例如,修改http响应头必须通过服务提供商,而不是由你的团队完成。

最后一个缺点就是如果CDN的服务器性能下降了,你的工作质量也随之下降。

CDN用于发布静态内容,如图片,脚本,样式表,flash。提供动态html页面会引入特殊的存储需求——数据库连接,状态管理,验证,硬件和os优化等。

yahoo!shopping网站的响应时间整体减少了20%,而做的工作仅仅是将所有的静态组件转移到了CDN。

posted @ 2008-12-17 19:10  gby630  阅读(285)  评论(0编辑  收藏  举报