(成本管理)缓存设计详解低成本的高性能W应用解决方案.pdfVIP

(成本管理)缓存设计详解低成本的高性能W应用解决方案.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(成本管理)缓存设计详解 低成本的高性能 W 应用解 决方案 网站性能直接影响访问速度,从而影响访问量。实现高性能 Web 应用的重要性是不言而喻 的。性能瓶颈主要体现在高延时、拥塞和服务器负载,专业的解决方法往往成本较高。做好 缓存的设计则可以在控制成本的情况下充分的提高性能。 过去几年中,Web 应用程序已经从简单的 HTML 页面堆积演变成使用各种各样的技术构建高可 扩展性和交互式的富应用程序。设计和开发这类应用程序变得越来越复杂,此外,决策者正 越来越多地寻求构建更丰富的互动功能到这些应用程序中,同时还要保证可维护性和高性能, 但高性能意味着高成本。为了构建提供给最终用户体验的是一个牢固的应用程序,开发人员 需要解决潜在的性能瓶颈。 本文侧重于缓存——它是交付高性能Web 应用程序急需的——也简要介绍一下压缩功能。有 一些公司在生产和销售专门的压缩和性能产品。本文旨在简单介绍在寻求专业产品解决性能 问题之前开发人员可以在客户端和服务器端对Web 应用程序做的一些性能改进。 性能瓶颈 性能瓶颈主要体现在高延时、拥塞和服务器负载。缓存不能完全解决掉这三个问题,但经过 详细的设计考虑,缓存是可以提高性能的 。在服务器端和客户端都缓存内容,据调查,平均 而言,下载HTML 只需要总的用户响应时间的 10-20% ,剩下的80-90%全部用于下载页面中的 其它组成内容,这些组成内容通常包括图像,如公司 logo ,缓存logo 可以有效避免到服务 器的多次往返。在前日51CTO 上发布的加速,加速,再加速:来自 Google 的网站加速技巧 大全中,Google 提到的提升网站速度和性能的低成本技巧中就包括缓存这一条。至于架构设 计方面,则可参考 51CTO 的视频专题:大型网站架构专家谈。 简单地讲,缓存是临时存储。它将数据复制到不同的计算机或不同于原始数据源的位置,有 了正确的配置,访问缓存数据的速度比访问原始数据的速度要快得多,使用缓存数据可以减 小服务器负载和带宽消耗,从最终用户的角度来看就是性能提高了。 图 1 显示了 Internet 如何工作的快速总揽,以及缓存在哪里发生作用。 图 1Internet 上的缓存:这个图显示了常见的请求和检索缓存信息的时机 缓存 正如你在图 1 中所看到的,在服务器和客户端上缓存数据既是可能的也是有效的,图2 显示 了这三个缓存位置的不同视图。 图2 缓存配置:此图显示了三个典型的缓存位置 1 、客户端浏览器缓存:浏览器缓存Web 对象后,可以对重复的请求直接响应,不用再从 Internet 请求数据了。 2 、服务器端转发代理缓存:虽然可能有些变化,但这些缓存位置通常是在最终用户防火墙 里面,可以对请求直接响应,不需要从原始来源请求数据。 3 、服务器端反向代理缓存:也被称为网关或代理缓存,这些缓存服务器的操作代表了客户 的来源服务器,术语 “内容分发网络(CDN )”就是这些反向代理缓存的集合。 你可以缓存任何可能不止一次被请求的对象,但总有一个危险就是缓存的对象很可能变得陈 旧,也就是说,没有准确地反应原始数据。不过可以使用两个参数来控制所有可缓存的对象: freshness 和 validation 。freshness 和 validation 都可以使用 HTTP 请求和相应组合来进 行确定。 ◆Freshness确定某个对象是否可以从缓存中获得,使用 expires 和 cache-control:max-age 头进行控制。 ◆Validation 确定某个对象是否已经陈旧,使用 last-modified 和 if-modified-since 头进 行控制。 设计高度缓存的 Web 应用程序 企业级 Web 应用程序既有静态部分又有动态部分,只要进行了正确的设计和架构,都能够实 现静态部分从缓存中获取,动态部分从原始服务器获取,但第一步是确定要缓存什么,图 3 提供了一个指南,可以帮助你确定哪些对象是可缓存,哪些对象是动态的(不可缓存的)。 图3 确定缓存能力:此图提供了某个对象是否应该缓存的指南 应用程序架构在可缓存对象和不可缓存对象之间有一点差异,开发人员应该寻求最大限度的 缓存命中率,同时要避免缓存动态对象。下面是一些最佳实践: 1 、使用缓存控制(cache-control:max-age)和有效期(Expires)头 2 、使用最后修改时间(last-modified)头 3 、检查Web 服务器是否支持 If-Modified-Since 4 、调查为小型站点使用转向代理的可行性,或为大

文档评论(0)

max + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档