关于大型网站技术演进的思考(十二)

  • 时间:
  • 浏览:1
  • 来源:大发时时彩代理—大发大发彩票app

关于大型网站技术演进的思考(十三)--网站静态化处里—CSI(5)

  像亲们平时做web开发完后 假如有一天没办法 太留心一另另一个 问提,一般的web开发里使用的静态资源相似图片,css文件,js文件亲们后该放置在一另另一个 resource包里,假如有一天是企业开发,你是什么 web应用上线完后 也就直接打包在web工程里,你是什么 互联网网站也只不过会将那先 资源放置在单独的静态服务器上,我平时开发时常听到村里人 说,项目里图片没办法 多了,应该合并下,css文件和js文件也没办法 多了也要合并下,你是什么 多到底多有十几个 了,几另一个文件,几百个文件,你是什么 要和社交网站,电商网站你是什么 用户可不前要产生图片的网站比起来那本来 我小巫见大巫了,假如有一天用户能产生内容的网站静态资源会随着时间推移文件规模变得异乎寻常的大,统统此类网站的静态资源假如有一天没办法 放置在项目下,它就要求亲们前要有新的手段管理那先 静态资源,假如有一天有新的手段使用那先 静态资源,没办法 像TFS文件存储系统出显了,缓存技术出显了,最后亲们在应用里使用ESI技术把它们整合到亲们网页里,通过你是什么 分析亲们就能明白ESI适用的业务场景了。

大型分布式电商系统架构是怎么才能 才能 从0开始英文英语 演进的?

  不过像上边你是什么 场景里的功能,它所使用的数据又后该那种可有可无的,假如有一天数据存储的不可靠造成数据丢失还是会造成何必 要的麻烦,统统亲们还是会把那先 信息做持久化存储。此外像上边的【生活好助手】条目还是页面的一另另一个 重要组成每种,假如有一天像SSI那种使用html注释指令,当指令无法正常解析,就直接返回到浏览器,假如有一天是注释,统统页面本来 我会显示它,SSI的你是什么 做法用在上边场景肯定是不太离米 的。曾经的场景在电商网站里是十分常见的,相似一另另一个 商品页面,页面里会有商品的图片,还有商品的完整性介绍,那先 内容觉得后该会用持久化系统进行存储,共同它们你是什么 也是网页的重要做成每种,假如有一天碰到问提就忽略最终会造成页面显示错误。

  网站静态化处里亲们首没办法 按规则拆分动静资源,拆分出来的静态资源该怎么才能 才能 处里本来 我网站静态化处里的关键所在,把静态资源处里从服务端的web应用里剥离出来,不让服务端的web应用参入没办法 多的静态资源解析,曾经就可不前要为服务端的web应用减少何必 要的处里操作,从而达到提升服务端web应用的运行波特率,接着亲们就把拆分出来的静态资源处里操作往前推移到静态web服务器,前两篇文章和今天的文章我着重讲解了静态web服务器处里静态资源的手段,没办法 这里有个问提了,那先 处里可不前要再往前推到浏览器来完成吗?答案当然否是定的,首先浏览器的缓存是非常不可靠的,假如有一天用户把浏览器设置为不缓存任何数据的模式,没办法 浏览器就没办法 缓存数据了,而用户的行为那是根本没办法 控制的,其次浏览器缓存的数据量是有限的,假如有一天亲们要在浏览器进行缓存也是缓存最有价值缓存的数据,更重要的你是什么 ,为了做好网站静态化处里亲们对网页的动静资源做了拆分,假如有一天拆分出的静态资源也并后该完整性不前要进行任何逻辑处里就能使用的,相似前面讲到的ESI适用的场景亲们就发现,你是什么 静态资源的获取还是要统统条件的参入,而那先 条件是由动态数据产生的,没办法 曾经的静态数据浏览器是没办法 做缓存的,这点也说明了拆分出来的静态化资源绝大每种还是要等待图片在服务端的,甜得没办法 等待图片在服务端,没办法 最为高效的处里那先 静态资源的地方本来 我CDN和静态web容器了。统统在本系列的第一篇里我讲到网站生产部署完后 最好是在服务端web应用完后 放置一另另一个 静态web容器,假如有一天有了曾经的静态web容器做反向代理,没办法 亲们就可不前要让它来完成静态资源的相关操作,假如有一天静态web容器还能辅助完成你是什么 逻辑上的处里,从而弥补了CDN的不够之处。当然没办法 做的好处不仅仅没办法 那先 ,第二篇文章里我曾经讨论了反向代理的好处,假如有一天亲们印象还后该太深了刻,我假如有一天在上边文章里对反向代理做更加深入的分析。

怎么才能 才能 设计一另另一个 牛掰的大型项目架构?

关于大型网站技术演进的思考(十六)--网站静态化处里—前后端分离—下(8)

关于大型网站技术演进的思考(十六)--网站静态化处里—前后端分离—下(8)

      本文转自027ryan  51CTO博客,原文链接:http://blog.51cto.com/ucode/1743271,如需转载请自行联系原作者

关于大型网站技术演进的思考(二十一)--网站静态化处里—web前端优化—下【终篇】(13)

这是支付宝默认给亲们显示的【生活好助手】,右边有个箭头,亲们点开它,如下图所示:

阿里巴巴技术工程师撰写书单汇总!那先 好书值得你一读再读!

进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

关于大型网站技术演进的思考(五)--存储的瓶颈(5)

关于大型网站技术演进的思考(十)网站静态化处里—动静整合方案(2)

    

  与SSI相对应的还有ESI,你是什么 技术后该太常用,在网可不前要采集到的资料也后该没办法 多,网上有限的资料也基本后该和淘宝相关的,不过仔细研究下淘宝对ESI的运用,对于理解网站静态化处里是非常有借鉴意义的,下面我将重点讲讲ESI的知识。首先看个场景啊。



  上篇我补充了下SSI的知识,SSI是一另另一个 十分常见的技术,记得多年前我看一遍统统门户网站页面的后缀是.shtml,没办法 这本来 我明统统门户网站都曾经使用过SSI技术,觉得现在搜狐网站也还在用shtml,如下图所示:

关于大型网站技术演进的思考(十九)--网站静态化处里—web前端优化—上(11)

  首先亲们直接从文件系统读取图片,波特率是非常低效,假如有一天亲们还是会把它们缓位于内存里,假如有一天假如有一天不同图片和不同商户是相关联,没办法 对于缓存查找完后 是前要一定的条件,不同商户对我每每所村里人 页面的设计方案也会有所不同,一般商户那先 资源,存储系统肯定会按照设计模板的维度存储,不同商家假如有一天商品和文化的不一样,没办法 使用的模板本来 我一样,假如有一天资源返回静态web容器前还前要一另另一个 整合过程,曾经场景下的静态资源获取觉得是前要一定逻辑计算的,没办法 你是什么 计算一般后该在开发完后 由代码完成,统统从上边ESI使用的例子看一遍,开发人员会使用velocity的esi标签,你是什么 标签开发人员可不前要设置参数,velocity引擎最终会将你是什么 标签解析成静态web容器可不前要解析的esi标签,标签里有曾经的代码test.vm.esi?id=80,文件上边会带上参数,没办法 你是什么 参数觉得是动态的,没办法 你是什么 参数也本来 我缓存系统获取正确信息的规则了。曾经亲们就完成了静态资源获取的逻辑计算,计算完毕后那先 资源会在一段时间里长期有效,假如有一天它就演变为静态资源,可不前要被缓存了。ESI比SSI强大多了,共同ESI也可不前要完成SSI的功能,统统使用了ESI也就没必要用SSI了。

关于大型网站技术演进的思考(九)--网站静态化处里--总述(1)

关于大型网站技术演进的思考(十七)--网站静态化处里—满足静态化的前后端分离(9)

亲们看一遍这里有加进的按钮,通过加进按钮,亲们可不前要加进你是什么 常用的组件图标。(注意:我这里本来 我以支付宝你是什么 功能为例,支付宝否是按照你说那先 的设计,你是什么 我能 不清楚了)

Web系统开发构架再思考-前后端的完整性分离

  亲们登录支付宝网站,到了我每每所村里人 首页亲们发现在支付宝下面有一另另一个 条目,如下图所示:

velocity引擎解析vm模板,最终会把vm解析成html页面,你是什么 完后 该页面里使用esi标签的地方就被转化为:

  ESI技术和SSI很像,只不过ESI技术是和缓存技术配合起来的,共同ESI标签本来 我像SSI标签那样使用注释的形式,假如有一天ESI标签是一定要被解析的,假如有一天仅仅是缓存,ESI和SSI比较起来也没显得没办法 有优势和有点硬,假如有一天对于电商你是什么 场景而言ESI的现实意义非常大,电商网站也是一另另一个 由用户产生内容的网站,每一另另一个 商家的店铺觉得亲们都知道它是属于淘宝或天猫的,假如有一天单独一另另一个 商家的店铺后该个性化很强的,与你是什么 店铺差异很大,为了买卖商品,商家会上传我每每所村里人 商品的图片,后该使用图片和文字描述我每每所村里人 的商品,单个商品页面亲们做动静分离分析,很容易分辨出动态内容和静态内容,假如有一天假如有一天一另另一个 电商平台拥有超乎想象数量的商家,没办法 每个页面的图片,文字和商家页面的关系就会变得有点硬微妙了。假如有一天电商网站的图片有点硬多,没办法 电商网站系统一般后该设计一套管理那先 小图片的分布式存储系统,相似淘宝的TFS文件系统,它是专门针对图片使用的分布式文件系统,那先 文件系统里存储的图片会和商家紧密关联,这后后图片你是什么 拥有了一定的动态属性,假如有一天对于每个商家页面而言,商家我每每所村里人 的图片资源后该可不前要静态化的,也本来 我说图片的读取是要通过商家信息进行计算的,计算出的结果对于商家而言又是静态的,可不前要被缓存的。假如有一天你是什么 静态资源的处里完后 就变得冗杂了,而那先 是SSI无法完成的。

关于大型网站技术演进的思考(十一)网站静态化处里—动静分离策略(3)

  结合上边的场景亲们来讨论下ESI技术了,ESI技术和SSI技术相似,觉得也和jsp里的include指令相似,它也是在页面里使用一另另一个 指令标签web容器解析你是什么 标签后将获取的数据替换掉你是什么 标签。亲们来看看ESI的使用土依据,亲们可不前要在velocity里自定义一另另一个 esi标签,velocity里的使用如下所示:

关于大型网站技术演进的思考(十五)--网站静态化处里—前后端分离—中(7)

关于大型网站技术演进的思考(十八)--网站静态化处里—反向代理(10)

文章出自:http://www.cnblogs.com/sharpxiajun/p/4289298.html

关于大型网站技术演进的思考(十四)网站静态化处里--前后端分离—上(6)

 当页面到了服务端web容器完后 的静态web容器(该web容器要安装好解析esi的模块),静态web容器就会解析你是什么 esi标签,静态web容器会以test.vm.esi?id=80 作为key,到缓存系统里查找信息,假如有一天查到了信息,缓存服务器就直接返回,用返回内容替换掉esi标签,假如有一天缓存里没办法 找到则会直接请求持久化系统,持久化系统返回信息后,缓存系统将信息缓存起来,共同也将信息返回至静态web容器,没办法 下次用户再访问同样内容就会直接从缓存里读取了。

   由此可见SSI在互联网的应用还是非常广泛的。觉得互联网统统网页假如有一天亲们按照动静分离策略拆分,绝大每种后该可不前要当做静态资源处里,相似新闻网站,文学网站,那先 网页生成后,大每种的资源后该不变的,说白了那先 网页本质本来 我一另另一个 静态页面,亲们开发亲们完后 本来 我前要服务端的参入,每一另另一个 网站后该我每每所村里人 固定的板式,假如有一天每个新网页后该完完整性整的开发,重复性的工作觉得没办法 多了,出错的概率也非常高,在本系列第二篇里我曾经完整性介绍了velocity的布局模板技术,觉得SSI也可不前要制作出一套固定的模板,开发完后 亲们只前要在定义好的模板里加进假如有一天修改亲们前要更改的内容就可不前要完成一另另一个 页面的制作,可见SSI技术为了亲们开发网页提供了很大的便利。

  假如有一天亲们按照我本每每所村里人 性化加进了我每每所村里人 的组件,不同的人加进的常用组件也会是不尽相同的,假如有一天亲们我每每所村里人 开发的网站后该曾经的功能,没办法 亲们该怎么才能 才能 设计了?亲们一般后该很直观的把你是什么 新增的组件信息存储在数据库里,用户每次登录完后 该信息也会随之从数据库里读取,假如有一天你是什么 场景对于像支付宝你是什么 用户量极大,日均访问量极高的大型网站,你是什么 个性化又非核心的功能都从数据库里读取,没办法 它对数据库造成的压力一定是十分巨大的,在存储的瓶颈里亲们讲了没办法 多优化数据库的手段,其核心手段有一另另一个 本来 我减少对数据库价值不高的操作,而你是什么 个性化配置跟支付宝的支付操作相比起来,价值度觉得太低,假如有一天亲们最好的选折 是处里数据库承担没办法 多此类的操作。

  讲完了ESI的妙用后,我下面将讲讲本篇的主题缓存了。觉得单独讲缓存真的没啥没办法 多内容,不过在网站静态化处里里的缓存还是和存储里讲到的分布式缓存有所不同,分布式缓存的数据后该存储在内存里,而网站静态处里的缓存既有存储在内存里还有存储在硬盘上,当然存储在内存里读取波特率会变慢,假如有一天网站的读取波特率还和资源距离用户的远近有关系,相似浏览器的缓存觉得是把静态内容缓位于硬盘上,假如有一天假如有一天不前要通过网络获取资源,假如有一天它的读取波特率就显得有点硬高了,除了你是什么 因素外还有个因素,亲们前面做动静拆分的目的本来 我想拆分出静态资源,让那先 静态资源远离服务端的web应用,曾经可不前要减少服务端何必 要的压力,从而达到提升服务端web应用处都可不能不能力,而把静态资源放置在静态web容器处里,它的处里静态资源波特率又会高于在服务端web应用的处里,从而也达到提升静态资源读取的波特率。不过假如有一天静态资源最终没办法 放置在服务端,没办法 你是什么 完后 亲们把静态资源存入到缓存里即内存里波特率肯定比在硬盘上高,统统CDN的服务节点一般后该采取将静态资源存储在内存里,就否是服务端web应用前的静态web容器,假如有一天亲们让静态资源缓位于内存里,波特率肯定也是比在硬盘上高。

下拉加载更多

关于大型网站技术演进的思考(一)--存储的瓶颈(1)

关于大型网站技术演进的思考(二)--存储的瓶颈(2)

版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,本来 我承担相关法律责任。假如有一天您发现本社区富含涉嫌抄袭的内容,欢迎发送邮件至: