ESI的全称是Edge Side Includes,是一个基于XML的标记语言,目的是在HTTP中组装各种资源。
在实际环境中,一个动态生成的页面,当中可能只有少量的内容是频繁变化的或是个性化的,对于传统的Cache服务器来说,为了能够保证页面的时效性,却由于页面中这些少量的动态内容而无法将整个页面进行缓存。
ESI通过使用简单的标记语言来对那些可以缓存和不能缓存的网页中的内容片断进行描述,每个网页都被划分成不同的小部分分别赋予不同的缓存控制策略,使Cache服务器可以根据这些策略在将完整的网页发送给用户之前将不同的小部分动态地组合在一起。通过这种控制,可以有效地减少从服务器抓取整个页面的次数,而只用从原服务器中提取少量的不能缓存的片断,因此可以有效降低原服务器的负载,同时提高用户访问的响应时间。
前端页面渲染,管理缓存片段,包括获取,解析,注入,失效处理
基于WebServer实现
页面标签方式定义缓存内容,在通过服务器软件直接与缓存服务服务器进行交互。
例子:
<html>
<body>
<h1>Welcome ESI!!</h1>
<p><esi:include src="test.vm.esi?id=100" max-age="45"/></p>
</body>
</html>
vm 模板中: esiTool.setTemplate('test.vm').addQueryData('id', 100) ,
jboss 输出时会转换成: <esi:include src="test.vm.esi?id=100" />
mod_esi 中:解析到esi 标签,拿到test.vm.esi?id=100 作为key,到缓存中查询,如果能查询到,直接输出内容。
如果没有查询到,访问 jboss,请求内容,请求到数据后,将数据写入缓存,并输出。
目前比较成熟的是apache+mod_esi
缺点
1、绑死了应用服务器软件,迁移到其他服务器平台成本比较高。
2、因为是依赖服务器插件,不好对现有功能进行扩展或优化
基于webx实现
参考淘宝成熟的ESI方案,借鉴ESI的原理,通过扩展WEBX,结合velocity的control来实现的
在vm文件中使用pageCachePullTool来调用缓存片段,实现对key的生成,获取缓存片段,及对失效缓存的处理。
$pageCache.setTemplate("example/exampleControl.vm").setParameter("parm1","value1").setParameter("parm2","value2")
缺点
1、侵入webx
存储缓存页面片段的地方,要求:高性能,高并发。
tair
tair 是淘宝开发的一个分布式 key/value 存储引擎.支持基于内存MDB和文件FDB两种存储方式。
aranda
aranda是平台技术开发一个分布式文件系统,已使用到图片银行等应用中,但目前还没有实现缓存超时失效管理功能。
memcache
目前网站大量使用的缓存系统,功能全面,成熟可靠。推荐选择此方案!
应用特点
1. 页面可分片
2. 页面分片内容共享率高,访问量高
3. 页面分片内容修改不频繁
旺铺
旺铺的页面都是widget组装而成,每个widget都是由一个模板文件和多个DataFeeder组成,widget之间互相独立。
特别是侧边的几个widget在同一个旺铺中的很多页面都是共享的,非常适合对这些共享率高的widget使用ESI分片缓存。
从而减少每次页面需要实时生成的动态内容,减少整个页面的响应时间,同时降低了整个服务器的负载。
- 大小: 17.1 KB
- 大小: 42.1 KB
- 大小: 35.1 KB
- 大小: 39.8 KB
分享到:
相关推荐
杨亮年度总结(doc33页).doc
本讲座由杨亮于2016年12月分享,主要探讨了潜在用户探寻的各种方法以及移动广告投放的相关概况。 首先,移动广告投放的概况展示了不同行业在获取新用户方面的差异。聊天交友类应用在每日新增用户数量上占据领先地位...
红外变焦设计是一种在红外光谱范围内实现焦距可调的技术,主要应用于军事、安防、遥感、工业检测等领域的高性能光学系统。本设计培训针对的是如何设计和优化这种技术,以便在不同的工作环境中捕捉清晰的红外图像。...
机器人设计涵盖了机械、电子、仿生、材料、智能等多个领域,是跨学科的前沿研究方向。3D打印技术使得设计者能够快速制造出符合要求的机器人部件,降低了传统制造工艺的复杂性和成本。 具体到四足机器人的制作,3D...
- **性能分析**:该程序具有较快的数据传输速度、较高的可靠性和良好的容错性能。 #### 六、设计结论 - 该程序成功实现了局域网内的文件断点续传功能,具备速度快、可靠性高、容错性强等特点。 #### 七、问题及...
此外,本文的作者们还计划对双向多中继网络的中继调度策略进行深入研究,探索如何结合仿真与实际环境进行更精细化的调度策略设计,以达到优化网络性能的目的。这对于无线通信系统在面对未来更高的数据传输需求和更为...
5. **优化的性能**:Metronic对代码进行了优化,确保了快速加载和流畅的交互体验。此外,它还集成了jQuery和其他高效的JavaScript库,如Knockout.js和Moment.js,为复杂应用提供了坚实的基础。 二、Metronic的应用...
维真验车在竞争激烈的环境中,需要不断优化服务,强化技术能力,提升用户体验,以保持其市场领先地位。 总结来说,维真验车作为一家专业的第三方二手车验车平台,依靠其专业验车师团队、全面的检测服务和持续的创新...
- 未就业学生比例为25.6%,具体个案分析表明,部分学生由于个人选择或生活规划未就业,例如柴京、陈绪东、吕艳芳、孟岩和杨亮等。 4. **详细就业情况分析**: - **就业地域分布**:报告可能涵盖了毕业生在国内及...
jsp数据库系统开发完全手册王国辉分成了19个,完全下载后,解压缩其中一个就可以了。
钙池操控通道小分子抑制剂减轻血管新内膜增生而没有血栓形成副作用,王腾飞,杨亮,目的:STIM1蛋白存在于多种细胞类型通过影响钙池操控钙内流(SOCE)而影响血管新内膜增生。本研究以2-APB为代表旨在探索SOCE的小...
电气安全智能监控系统将改善电气工程行业的安全现状,具有良好的技术性能、巨大的发展空间和潜在的社会经济效益,必将在我国电气工程领域得到普及并发挥其巨大的作用。同时电气设计者要不断将先进的技术应用到这一...
- **情境导入**:通过杨亮的故事引入问题,激发学生共鸣。 - **互动活动**:通过一系列活动促进学生的参与和互动,提高学习效果。 - **总结与反思**:课后的总结和课后思考,强化学习内容,促进自我反思。 这节...
综上所述,教育信息化推进领导组织机构的建立旨在系统性地推动教育领域的数字化进程,通过科学的管理和高效的工作机制,确保教育信息化项目的顺利实施,提升教育质量和效率,最终实现教育现代化的目标。这样的组织...
- 杨亮(副校长) - **成员**:王业勇、陈春水、李峥嵘等多位教职工,共同参与活动的筹备与执行工作。 #### 活动时间与内容 - **活动时间**:xxxx年9月14日,具体活动安排可能围绕该日期展开。 - **主要内容**:...
5. 王国辉, 李文立, 杨亮. jsp数据库系统开发完全手册[M]. 北京:人民邮电出版社,2006. 6. 仝春灵, 沈祥玖. 数据库原理与应用SQL Server 2000. 北京:中国水利水电出版社, 2003. 7. 张桂元, 贾燕枫. struts开发入门...
紧接着,肥城银宝集团公司杨亮科长将与我们分享信息化应用的成功案例。杨科长所在的公司,在信息化建设方面取得了显著的成效,他们从信息化中寻找到的发展机遇和成功经验,对于在座的每一位企业家来说都是宝贵的借鉴...