IT老齐架构300讲笔记(053) 单页10万QPS,京东如何通过动静分离架构抗住超高并发访问

目录

一、动静分离

1.1 架构三大分离设计

1.2 动静分离

1.3 有效区分页面中的动静数据是优化的关键前提 

二、动静分离案例

2.1 缓存架构

2.2 动静分离流程图

2.3 页面静态化与伪静态化技术

2.4 伪静态化

2.5 静态化的问题

三、动静整合方案

3.1 利用SSI实现动静分离

3.3 京东动静结合方案

3.4 Ajax异步请求法

专栏链接: IT老齐架构300讲笔记


一、动静分离

1.1 架构三大分离设计

  • 读写分离
  • 动静分离
  • 前后台分离

1.2 动静分离

  • 静态数据”无个性化”数据
  • 静态文件: HTML/CSS/JS/图片
  • 低频变动数据: 字典数据 / 地区数据 / 组织架构 / 历史数据
  • 动态数据就是个性化/高频写数据
  • 个性化推荐
  • 高频写: 股市行情 / 5G信号数据 / 天气变化

1.3 有效区分页面中的动静数据是优化的关键前提 

二、动静分离案例

2.1 缓存架构

2.2 动静分离流程图

  • 静态页面处理需要几毫秒
  • 动态页面生成需要几百毫秒
  • 如何将动态页面生成到静态页? 

2.3 页面静态化与伪静态化技术

  • 页面静态化技术
  •   将动态页面另存为静态页面保存到本地磁盘
  •   利用Nginx直接路由到磁盘文件,不再进入后端
  •   文件碎片化严重,文件同步管理麻烦
  • 页面伪静态化技术(推荐)
  •   利用Redis缓存,缓存生成的页面
  •   没有碎片化问题,可自动过期,数据管理轻松
  •   需要大量内存存储信息

2.4 伪静态化

2.5 静态化的问题

  • 静态化只适合数据集有限(百万量级)的场景
  • 热点商品SKU
  • 页面集过大不适合静态化
  • 商品全量SKU,文件碎片太多
  • 批量同步磁盘IO瓶颈
  • 伪静态化内存开销太大
  • 动态内容是静态化遇到的新挑战

三、动静整合方案

  • 服务端SSI
  • 利用Nginx SSI特性实现服务端动静整合
  • Ajax异步调用法
  • 生成静态页面,动态数据部分发起Ajax异步查询

3.1 利用SSI实现动静分离

SSI是Server Side Inclde的缩写,是一种 基于服务端的网页制作技术 ,就是服务端包含的意思,该项目中用到了nginx中SSI模块的include命令, 这个命令会包含一个页面 ,然后在nginx服务器中展开。

3.3 京东动静结合方案

3.4 Ajax异步请求法  

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值