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

  • 时间:
  • 浏览:3
  • 来源:5分3D_5分排列5

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

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

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

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

velocity引擎解析vm模板,最终会把vm解析成html页面,或多或少然后该页面里使用esi标签的地方就被转化为:

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

  不过像后边或多或少场景里的功能,它所使用的数据又都有那种可有可无的,假若数据存储的不可靠造成数据丢失还是会造成暂且要的麻烦,或多或少或多或少亲们还是会把那此信息做持久化存储。此外像后边的【生活好助手】条目还是页面的三个小 重要组成帕累托图,然后像SSI那种使用html注释指令,当指令无法正常解析,就直接返回到浏览器,原应是注释,或多或少或多或少页面可是我 会显示它,SSI的或多或少做法用在后边场景肯定是不太最少的。曾经 的场景在电商网站里是十分常见的,类事三个小 商品页面,页面里会有商品的图片,还有商品的完全介绍,那此内容人太好都有会用持久化系统进行存储,一同它们有有一种也是网页的重要做成帕累托图,原应碰到问题就忽略最终会造成页面显示错误。

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

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

  上篇我补充了下SSI的知识,SSI是三个小 十分常见的技术,记得多年前我看得人或多或少或多或少门户网站页面的后缀是.shtml,没办法 这可是我 明或多或少或多或少门户网站都曾经 使用过SSI技术,人太好现在搜狐网站也还在用shtml,如下图所示:

  结合后边的场景亲们来讨论下ESI技术了,ESI技术和SSI技术类事,人太好也和jsp里的include指令类事,它也是在页面里使用三个小 指令标签web容器解析或多或少标签后将获取的数据替换掉或多或少标签。亲们来看看ESI的使用最好的土措施,亲们需用在velocity里自定义三个小 esi标签,velocity里的使用如下所示:

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

  亲们登录支付宝网站,到了自己首页亲们发现在支付宝下面三个小 条目,如下图所示:

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

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



下拉加载更多

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

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

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

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

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

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

    

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

  讲完了ESI的妙用后,我下面将讲讲本篇的主题缓存了。人太好单独讲缓存真的没啥越多内容,不过在网站静态化正确处理里的缓存还是和存储里讲到的分布式缓存有所不同,分布式缓存的数据都有存储在内存里,而网站静态正确处理的缓存既有存储在内存里还有存储在硬盘上,当然存储在内存里读取带宽会减慢,然后网站的读取带宽还和资源距离用户的远近有关系,类事浏览器的缓存人太好是把静态内容缓地处硬盘上,然后原应不需用通过网络获取资源,然后它的读取带宽就显得有点儿高了,除了或多或少因素外还有个因素,亲们前面做动静拆分的目的可是我 想拆分出静态资源,让那此静态资源远离服务端的web应用,曾经 需用减少服务端暂且要的压力,从而达到提升服务端web应用正确处理能力,而把静态资源放置在静态web容器正确处理,它的正确处理静态资源带宽又会高于在服务端web应用的正确处理,从而也达到提升静态资源读取的带宽。不过原应静态资源最终没办法 放置在服务端,没办法 或多或少然后亲们把静态资源存入到缓存里即内存里带宽肯定比在硬盘上高,或多或少或多或少CDN的服务节点一般都有采取将静态资源存储在内存里,就是是否是服务端web应用前的静态web容器,原应亲们让静态资源缓地处内存里,带宽肯定也是比在硬盘上高。

   由此可见SSI在互联网的应用还是非常广泛的。人太好互联网或多或少或多或少网页原应亲们按照动静分离策略拆分,绝大帕累托图都有需用当做静态资源正确处理,类事新闻网站,文学网站,那此网页生成后,大帕累托图的资源都有不变的,说白了那此网页本质可是我 三个小 静态页面,亲们开发亲们然后可是我 需用服务端的参入,每三个小 网站都有自己固定的板式,假若每个新网页都有完完全整的开发,重复性的工作人太好越多了,出错的概率也非常高,在本系列第二篇里我曾经 完全介绍了velocity的布局模板技术,人太好SSI也需用制作出一套固定的模板,开发然后亲们只需用在定义好的模板里去掉 原应修改亲们需用更改的内容就需用完成三个小 页面的制作,可见SSI技术为了亲们开发网页提供了很大的便利。

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

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

  与SSI相对应的还有ESI,或多或少技术都有太常用,在网需用派发到的资料也都有越多,网上有限的资料也基本都有和淘宝相关的,不过仔细研究下淘宝对ESI的运用,对于理解网站静态化正确处理是非常有借鉴意义的,下面我将重点讲讲ESI的知识。首先看个场景啊。

  原应亲们按照自己个性化去掉 了自己的组件,不同的人去掉 的常用组件也会是不尽相同的,原应亲们自己开发的网站都有曾经 的功能,没办法 亲们该如何设计了?亲们一般能否 很直观的把或多或少新增的组件信息存储在数据库里,用户每次登录然后该信息也会随之从数据库里读取,然后或多或少场景对于像支付宝或多或少用户量极大,日均访问量极高的大型网站,或多或少个性化又非核心的功能都从数据库里读取,没办法 它对数据库造成的压力一定是十分巨大的,在存储的瓶颈里亲们讲了没办法 多优化数据库的手段,其核心手段三个小 可是我 减少对数据库价值不高的操作,而或多或少个性化配置跟支付宝的支付操作相比起来,价值度人太好太低,然后亲们最好的选泽是正确处理数据库承担越多此类的操作。

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

如何设计三个小 牛掰的大型项目架构?

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

大型分布式电商系统架构是如何从0现在刚现在开始演进的?

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

亲们看得人这里有去掉 的按钮,通过去掉 按钮,亲们需用去掉 或多或少常用的组件图标。(注意:我这里可是我 以支付宝或多或少功能为例,支付宝是是否是按照他说的设计,或多或少我就不清楚了)

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

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

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

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

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