《高性能网站建设指南》笔记-2 规则2——使用内容发布网络
2008-12-17 19:10
483 查看
网站最初通常将其所有的服务器放在同一个地方。当用户群增加时,公司就必须面对服务器放置地点不再适用的事实——有必要在多个地理位置不同的服务器上部署内容。
作为实现地理位置分离的第一步,不要尝试适用分布式架构重新设计你的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。
作为实现地理位置分离的第一步,不要尝试适用分布式架构重新设计你的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。
相关文章推荐
- 《高性能网站建设指南》阅读笔记_规则2- 使用内容发布网络
- 提高web性能之--使用内容发布网络
- 《高性能网站建设指南》阅读笔记_规则8- 使用外部javascript和css
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
- 41. 使用内容发布网络(2)
- Principles of training multi-layer neural network using backpropagation 使用后向传播算法训练多层神经网络的规则
- iOS学习笔记-146.网络06——NSURLConnection03_使用
- 【使用JSOUP实现网络爬虫】修改数据-设置一个元素的HTML内容
- ArcGIS API for javascript开发笔记(五)——GP服务调用之GP模型的发布及使用详解
- Java基础知识强化之网络编程笔记18:Android网络通信之 使用HttpClient的Post / Get 方式读取网络数据(基于HTTP通信技术)
- 【网络编程】WebView的使用笔记(一)
- python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容
- 《高性能网站建设指南》阅读笔记_规则3- 添加Expires头
- IOS网络笔记--地图内容3(点击获取当前地址的具体坐标)
- 学习笔记 Tianmao 篇 OkHttp 网络的使用的简单封装 获取Json用GSON来解析
- 安卓个人学习笔记---使用URL访问网络资源
- iOS学习笔记-141.网络01——使用Tomcat和JavaWeb来搭建自己的网络接口
- 《高性能网站建设指南》阅读笔记_规则14- 使Ajax可缓存
- 机器学习中使用的神经网络第三讲笔记:线性/逻辑神经网络和BackPropagation
- 机器学习中使用的神经网络第九讲笔记