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
分享到:
相关推荐
004-杨亮-20161129-移动广告投放-潜在用户探寻(1).pptx
二维柔性摆动水翼水动力性能的数值分析,苏玉民,杨亮,本文以仿鱼类尾鳍推进为背景,应用计算流体力学软件FLUENT对二维柔性摆动水翼的水动力性能进行了数值计算。分析了柔性变形幅度、来
jsp数据库系统开发完全手册王国辉分成了19个,完全下载后,解压缩其中一个就可以了。
钙池操控通道小分子抑制剂减轻血管新内膜增生而没有血栓形成副作用,王腾飞,杨亮,目的:STIM1蛋白存在于多种细胞类型通过影响钙池操控钙内流(SOCE)而影响血管新内膜增生。本研究以2-APB为代表旨在探索SOCE的小...
仿金枪鱼游动的数值模拟,苏玉民,杨亮,本文以仿金枪鱼水下机器人为背景,应用计算流体力学软件FLUENT对仿金枪鱼水下机器人的水动力性能进行了数值计算。分析了不同摆动频
圆柱滚子轴承的刚度计算,杨静,杨亮,针对基于Hertz接触理论的轴承刚度计算方法在实际应用中存在较大局限性的问题,通过实验方法建立基于超声波的油膜刚度测试模型,并�
基于情感主题的博客性别分类模型,王昊,杨亮,随着互联网的发展,博客已经被广大用户熟知,大型的门户网站以及SNS网站都拥有自己的博客空间。在学术界博客也成为研究是热点,博
超高产小麦育种的探讨,杨亮,卢少源,本文分析了我国小麦高产育种现状和小麦超高产育种的方向。从黄淮平原冬麦区来看,多穗型和大穗多小穗型结合的中间型品种是超高产
基于IOPE的语义Web服务匹配算法,杨亮,,目前的语义匹配算法主要关注服务的IO匹配,支持服务PE匹配的算法很少。本文在支持IO匹配的基础上,通过基于描述逻辑的SWRL语言对服��
异构无线传感器网络中基于ECC的密钥管理方案,韩刚,杨亮,针对WSN随机密钥管理方案的节点存储空间和网络抗毁性问题,提出一种基于ECC (Elliptic Curve Cryptography)的密钥管理方案。其设计思想包括基
折叠翼导弹侧向过载的滑模变结构控制研究,杨亮,杨剑影,考虑折叠翼导弹在弹翼瞬间展开对数学模型变化的影响,且该瞬间过程比较复杂而且快速,我们将该过程简化模拟为模型参数的快速突变
我们S2的考试题,要求是120分钟内完成,本人与同学好像都提前完成了,感觉考试分数不会太低,结果是居然有近一半人没过,于是我们都很愤恨,因为大家功能基本都完成了,应该是可以过的!可老师的回答是:细节决定...
油猴插件
Metronic是一套基于Twitter Bootstrap 3.x的高级管理控制面板主题,是一个完全响应式管理模板
SSH帮助文档,挺全的,用的时候找了半天
docker-nexus3-3.28
基于AJAX的流行框架DWR,实现无刷新,使web程序拥有更加丰富的用户体验!另外附带DER入门手册