『互联网架构』软件架构-解密电商系统-页面静态化(81)

栏目: 后端 · 发布时间: 5年前

内容简介:秒杀系统说了几次了,基本技术点都有所涉及。真正的要解决大流量分布式系统的时候,不是特别容易,就像CAP原则和BASE原则,没有最优的方案,只有最合适的。

秒杀系统说了几次了,基本技术点都有所涉及。真正的要解决大流量分布式系统的时候,不是特别容易,就像CAP原则和BASE原则,没有最优的方案,只有最合适的。

『互联网架构』软件架构-解密电商系统-页面静态化(81)

(一)页面静态化

  • 技术方案
  1. 通过程序将动态页面抓取并保存为静态页面,这样的页面的实际存在于服务器的硬盘中
  2. 通过WEB服务器的 URL Rewrite的方式,它的原理是通过web服务器内部模块按一定规则将外部的URL请求转化为内部的文件地址,一句话来说就是把外部请求的静态地址转化为实际的动态页面地址,而静态页面实际是不存在的。这两种方法都达到了实现URL静态化的效果,但是也各有各自的特点。
  3. 还有一种是把页面划分成子数据块,每个数据块可能是一个inc文件,也可能多个数据块包含在一个inc文件中。具体的数据块划分根据页面的业务结构来处理。比如:网站头尾等公共数据块可以独立成一个文件。
  • 技术点

    > Freemaker,https://freemarker.apache.org/

    > 非常明确的说明了FreeMarker是如何运作的。首先需要有一个template模板,在那里就是一堆的html标签和一些专属FreeMarker的标签,这些标签之后会被具体的数据代替。这些数据就是有左下的Java objects提供。 就是工程中的Jar包。他把这些模板和Java objects的数据加工组合之后输出html页面。所以,FreeMarker的功能,就如官网中一直强调的,不是别的而是一个模板引擎。

『互联网架构』软件架构-解密电商系统-页面静态化(81)

通过 工具 的方式,模板讲动态的页面生成对应的静态页面。对于商品来说,上架审核的时候完成。

  • 问题:如果商品很多一个一个生成html,是不是很麻烦,就算加入批量的话,还是有问题,分布式系统怎么办?freemark的效率不是特别的快?
  1. 写一个消息队列,发个消息把商品的ID发送到MQ队列中,这样每次收到队列消息就生成静态页面。
  2. 页面路径如果放入tomcat也是有问题的,tomcat可以承受1000个,在秒杀的时候都是在狂刷页面的,html直接扔到nginx上面去。如果tomcat可以承受1000个并发,那nginx可以承受1万个并发。
  3. 如果放入到nginx上,分布式系统岂不是每个nginx都放入生成的html静态文件,手工在一个一个放,人力成本开销太大了。使用mq,需要使用topic订阅的方式,让每个tomcat来进行处理。其实这样很占资源。
  4. 其实不如单独弄一个应用,接受mq的消息,不使用订阅方式,然后mq生成好的html往每个nginx上面去复制就可以了。
  5. 上面说的复制使用rsync,不要使用scp,rsync复制的是变化的文件,scp是全量复制。对于大量的静态文件下scp绝对是一种灾难。

(二)静态资源优化

  1. 从taobao或者京东上面下载的js,都是一行基本没办法看,其实就是做了一些压缩,一个是为了减少流量,二加快页面的加载速度。
  2. css和js,类似jquery,echars下载了对应的jar包后,如果页面内有多个引入的项目内的js,就会造成每个页面都访问对应的js,可以通过webpack的方式将多个js合并到一起一个js。css合并到一起变成一个css,减少网络之间通信的次数。

(三)CDN

CDN的全称是Content Delivery Network,即内容分发网络。

  1. CDN其实就是在你家附近开个加油站,其实这个加油站得油,是自己啦了一个油管从到他们加油站的总公司,有了CDN你不用在跑10公里加油了,只用开1公里就可以加到油了。(就近分发)
  2. 在油管里面都是老油可能过期的油,总公司会给你家就近的加油站打电话,现在油管里面的油都是过期的,你必须把老油处理掉。(服务端通知CDN刷新缓存)。
  3. 每个油管跟总公司之前有很多油管,这些油管是有版本号的,总公司时刻通知加油站使用哪个油管来加油。(这个就是刷新的时候区分通过版本号的概念)

PS:秒杀系统不仅仅讲秒杀,主要是讲如何利用限流,缓存,异步分布式互联网大并发的场景。

>>原创文章,欢迎转载。转载请注明:转载自,谢谢!>>原文链接地址:上一篇:

已是最新文章


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

图解CSS3

图解CSS3

廖伟华 / 机械工业出版社 / 2014-7-1 / CNY 79.00

本书是CSS3领域的标准性著作,由资深Web前端工程师根据CSS3的最新技术标准撰写。内容极为全面、丰富和翔实,由浅入深地讲解了CSS3新特性的语法、功能和使用技巧,涵盖选择器、边框、背景、文本、颜色、UI、动画、新型盒模型、媒体查询、响应式设计等各种模块;写作方式创新,有趣且易懂,用图解的方式来描述CSS3的每一个特性甚至每一个步骤都配有实战效果图;包含大量案例,实战性强,每个特性都有作者从实践......一起来看看 《图解CSS3》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换