『互联网架构』软件架构-解密电商系统-页面静态化(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:秒杀系统不仅仅讲秒杀,主要是讲如何利用限流,缓存,异步分布式互联网大并发的场景。

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

已是最新文章


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

查看所有标签

猜你喜欢:

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

Machine Learning

Machine Learning

Kevin Murphy / The MIT Press / 2012-9-18 / USD 90.00

Today's Web-enabled deluge of electronic data calls for automated methods of data analysis. Machine learning provides these, developing methods that can automatically detect patterns in data and then ......一起来看看 《Machine Learning》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码