【成为架构师2-8】早期性能优化-三大分离之一:动静分离

系列文章是博主对沈剑的《架构师训练营》分享内容的个人笔记总结,原内容公众号“成为架构师”。

目录

        • 1 三大分离
        • 2 动静分离
          • 静态页面
          • 动态页面
          • 架构设计
        • 3 页面静态化
          • 动态页面的生成过程
          • 实施页面静态化
          • 什么样的场景适合页面静态化

1 三大分离

早期,对架构影响最小,提升性能最快的方案就是实施三大分离架构:

  1. 动静分离
  2. 读写分离
  3. 前后台分离

2 动静分离

静态页面

指的是几乎不变或修改非常少的页面,通常有:

  1. 首页html
  2. css,js
  3. JPEG等资源文件

与之相对应的加速静态页面访问速度的技术通常有:

  1. CDN
  2. nginx
  3. squid / varnish
    【成为架构师2-8】早期性能优化-三大分离之一:动静分离_第1张图片
动态页面

动态页面通常是那些服务于业务逻辑的页面,需要进行数据查询,加速动态页面访问的架构通常有:

  1. 分层架构
  2. 服务化架构
  3. 数据库,缓存架构

加速动态页面的访问的架构是一个复杂的工作,这里就不做展开了,它本身也就是架构优化的核心内容
【成为架构师2-8】早期性能优化-三大分离之一:动静分离_第2张图片

架构设计

动静分离:静态页面与动态页面,分开不同的系统访问的架构方法

通常来说静态页面的访问路径很短,时间也只需要几毫秒;而动态页面的访问路径通常较长,需要经过:反向代理、web-server、服务层、数据库或者缓存,时间在几十毫秒甚至几百毫秒,且动态页面对架构的扩展性更高

动态页面与静态页面通常使用不同的域名来进行区分:
【成为架构师2-8】早期性能优化-三大分离之一:动静分离_第3张图片

3 页面静态化

静态页面的访问速度是动态页面的上百倍,把需要“动态生成的页面”给“静态化”,岂不是可以极大地提升性能?

动态页面的生成过程

动态页面生成通常是以下流程:
【成为架构师2-8】早期性能优化-三大分离之一:动静分离_第4张图片
基本就是以下必要的几步:

  1. 浏览器解析域名请求服务器
  2. web-server解析参数,请求服务层
  3. 服务层访问数据库(查询)或者缓存
实施页面静态化

提前生成静态页面,使用静态页面的相关加速技术来进行访问
【成为架构师2-8】早期性能优化-三大分离之一:动静分离_第5张图片

什么样的场景适合页面静态化

适合的场景:返回页面结果集有限

  1. 城市页面
  2. 二手车(两万多也是有限的)

不适合的场景:返回的结果集数量过大、写入变化频繁的:

  1. 帖子
  2. 搜索

下一篇将会继续介绍三大分离设计的架构技术

上一篇回顾:【成为架构师2-7】TCP负载均衡,长连接的负载均衡策略
下一篇更精彩:【成为架构师2-8】早期性能优化-三大分离:读写分离与前后台分离

你可能感兴趣的:(成为架构师)