加载中 ...
首页 > 新闻资讯 > 经验心得 正文

天猫浏览型应用的CDN静态化架构演变

2019-03-23 07:29:34 来源:沈阳软件公司 作者:沈阳软件开发

  缓存系统

  统一接入层和CDN节点上都是用Web服务器+Cache方式。静态化应用对应的域名会被剖析到CDN和统一接入层的虚拟IP上,CDN拿到请求后,先读取 当地缓存,缓存不掷中则到统一缓存层获取。统一接入层按原有逻辑处置惩罚请求,缓存不掷中则回源到服务器端获取数据。同时,统一接入层Web服务器需要能够识 别用户请求是CDN回源类型,照旧正常请求,以免重复打点会见日志和GZIP压缩。

  缓存失效

  缓存失效原理与统一接入层类似。失效执行流程大致为,客户端请求经VIP被随机分配给失效中央某个节点,然后失效使命被发送至署理,经署理向缓存服务器发送失效下令并返回效果,如图8所示。

图8  缓存失效原理

  动态内容填充

  营业方面,由于存在准时切换页面局部内容的需求,整体架构中增添ESI和页面打点作为动态内容填充方式。ESI标签由Cache层卖力剖析回源,而且会对ESI请求做缓存,而且提供如下特征。

需要准时做全站变换的页面模块用ESI的Include实现,时间判断则放在应用服务器处置惩罚回源请求的时间。回源以后,应用服务器设置失效时间。例如请求回源时应用服务器加上s-maxAge,这个页头的缓存在定点失效。Cache系统提供合并回源,制止重复,防止失效后的高并发回源给应用服务器带来打击。Cache系统在ESI的缓存失效后回源,回源的请求处置惩罚时代不会挂起外部请求,会继续向客户端返回老版本的页面,回源请求处置惩罚完以后更新成新版本。类似Copy on Write,防止回源请求挂起导致前端服务器挂起。ESI回源时对Response Header的操作不会发到客户端。

  革新效果

  最终基于CDN静态化的架构去除了单机缓存的横向扩展瓶颈,掷中率越高、系统容量越大的特征决议了可以用较小的成本支持峰值流量;引入ESI编程模子,解决 了页面上的局部刷新问题,支持双11营业中一些需要全网准时切换页面内容的特殊需求;静态页面+弱依赖革新带来高可用性,并最终沉淀出了一套与应用无关的 缓存和失效系统。2002年双11当天,依附这一整套CDN静态化架构,天猫商品详情等浏览型系统平稳渡过了缔造历史的一天,无论是页面会见量(PV)还 是页面请求峰值(QPS)均创新高,而系统自己很是稳固,并有富足余量蒙受更大级此外会见流量。同时,新的部署模子和基于CDN节点地域特征的缓存系统, 也降低了秒级请求的打击型峰值,更好地知足了系统稳固性需求。在未来一段时间内,与天猫类似的浏览型系统均能够参照这套架构系统较为利便地完成静态化革新 和接入,并到达理想的稳固性和可伸缩目的。

  作者徐昭,混名长恭,主要卖力天猫详情系统的架构优化事情。结业于浙江大学盘算机专业,热爱Java Web手艺,多关注服务端性能优化,热衷开源手艺的研究和分享。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。