【IT老齐053】动静分离架构抗住超高并发访问
架构三大分离设计
- 读写分离
- 动静分离
- 前后台分离
概念
有效区分页面中的动静数据是优化的关键前提
- 静态数据是无个性化数据
- 静态文件: HTML/CSS/JS/图片
- 低频变动数据: 字典数据/地区数据 /组织架构历史数据
- 动态数据就是个性化/高频写数据
- 个性化推荐
- 高频写: 股市行情 / 5G信号数据 /天气变化
场景
优化
静态化优化
页面静态化技术
- 将动态页面”另存为”静态页面保存到本地磁盘
- 利用Nginx直接路由到磁盘文件,不再进入后端
- 文件碎片化严重,文件同步管理麻烦
页面伪静态化技术(推荐)
- 利用Redis缓存,缓存生成的页面
- 没有碎片化问题,可自动过期,数据管理轻松
- 需要大量内存存储信息
问题
- 静态化只适合数据集有限(百万量级)的场景
- 热点商品SKU
- 页面集过大不适合静态化
- 商品全量SKU,文件碎片太多
- 批量同步磁盘IO瓶颈
- 伪静态化内存开销太大
- 动态内容是静态化遇到的新挑战
动静整合优化
服务端SSI法
利用Nginx SSI特性实现服务端动静整合,SSI是Server Side Inclde的缩写,是一种基于服务端的网页制作技术,就是服务端包含的意思,该项目中用到了nginx中SSI模块的include命令,这个命令会包含一个页面,然后在nginx服务器中展开。
ssi on
ssi silent errors on;
ssi types text/html;
Ajax异步调用法
- 生成静态页面,动态数据部分发起Ajax异步查询