# 003. 小型电商网站的商品详情页的页面静态化架构以及其缺陷

本课程的案例背景是商品详情页的系统架构,以此基础讲解 -> 缓存架构 -> 高并发 -> 高可用

电商网站里,大概可以说分成两种,

  • 小型电商,简单的一种架构方案,页面静态化的方案;
  • 大型电商,复杂的一套架构,大电商,国内排名前几的电商,用得应该咱们这里讲解的这套大型的详情页架构(核心思想)

为了讲解大型电商的详情页架构,这里先把小型的讲解下

部分页面静态化或全量的页面静态化

先来看看页面静态化带来的问题,假设有一个商品详情页的模板如下

<html>
	<title></title>
	<body>
		商品名称:#{productName}
		商品价格:#{productPrice}
		商品描述:#{productDesc}
	</body>
</html>
1
2
3
4
5
6
7
8

里面的占位语法需要数据来填充,比如保存在 mysql 中的,此时数据变化了或者模板变化了,都需要重新渲染成 html 页面,放在 nginx 上,供用户访问。如果只是某一个商品数据变化了只影响了一个页面那还好说,直接重新渲染这一个即可,但是有商品推荐的,可能其他商品详情页面里面也会出现。这个时候就比较难判定了,可能只会全量渲染了

那么问题来了,对于小网站,页面很少,很实用,非常简单,使用的模板引擎有 velocity、freemarker 等,页面数据管理的 cms 系统,内容管理系统等做一个一键全量渲染功能即可

对于大型网站来说,比如淘宝,他们的商品数据太多了,根本就没有这么多的时间去重新渲染,上亿的商品等,可能需要好几天