专栏首页架构师之路动静分离架构,究竟是啥?

动静分离架构,究竟是啥?

前两天简单介绍了“前台与后台分离”的架构设计准则,又有水友提问:能不能顺带介绍下“动静分离”的架构设计准则呢?今天花1分钟简单说说。

什么是动静分离架构设计准则?

动静分离是指,静态页面与动态页面解耦分离,用不同系统承载对应流量的架构设计方法。

什么是静态页面?

静态页面,是指互联网架构中,几乎不变的页面(或者变化频率很低),例如:

  • 首页等html页面
  • js/css等样式文件
  • jpg/apk等资源文件

静态页面,有与之匹配的技术架构来加速,例如:

  • CDN
  • nginx
  • squid/varnish

什么是动态页面?

动态页面,是指互联网架构中,不同用户不同场景访问,都不一样的页面,例如:

  • 百度搜索结果页
  • 淘宝商品列表页
  • 速运个人订单中心页

这些页面,不同用户,不同场景访问,大都会动态生成不同的页面。

动态页面,有与之匹配的技术架构,例如:

  • 分层架构
  • 服务化架构
  • 数据库,缓存架构

架构上,如何实施动静分离架构?

静态页面与动态页面解耦分离,用不同系统承载对应流量的架构,如下图所示。

  • 静态页面访问路径短,访问速度快,几毫秒
  • 动态页面访问路径长,访问速度相对较慢(数据库的访问,网络传输,业务逻辑计算),几十毫秒甚至几百毫秒,对架构扩展性的要求更高
  • 静态页面与动态页面以不同域名区分

既然静态页面访问快,动态页面生成慢,有没有可能,将原本需要动态生成的站点提前生成好,使用静态页面加速技术来访问呢?

可以,这就是互联网架构中的“页面静态化”优化技术。

什么是页面静态化技术?

举个栗子,如下图,58同城的帖子详情页,原本是需要动态生成的:

(1)端访问/detail/12348888x.shtml 详情页;

(2)web-server层从RESTful接口中,解析出帖子id是12348888;

(3)service通过DAO层拼装SQL,访问数据库;

(4)最终获取数据,拼装html返回浏览器;

而“页面静态化”是指,将帖子ID为12348888的帖子12348888x.shtml提前生成好,由静态页面相关加速技术来加速:

这样的话,将极大提升访问速度,减少访问时间,提高用户体验。

页面静态化,适合什么业务场景?

一切脱离业务的架构设计都是耍流氓,并不是所有的业务场景都适合页面静态化,滥用该技术,反而会降低系统性能。

页面静态化,适用于:总数据量不大,生成静态页面数量不多的业务。

举一些栗子:

(1)快狗打车的城市页只有几百个,就可以用这个优化,只需提前生成几百个城市的“静态化页面”即可;

(2)一些二手车业务,只有几万量二手车库存,也可以提前生成这几万量二手车的静态页面;

(3)像58同城这样的信息模式业务,有几十亿的帖子量,就太适合于静态化(碎片文件多,反而访问慢);

简单总结

(1)动静分离是指,静态页面与动态页面解耦分离,用不同系统承载流量的架构设计方法;

(2)“页面静态化”是一种将原本需要动态生成的站点提前生成静态站点的优化技术;

(3)总数据量不大,生成静态页面数量不多的业务,非常适合于“页面静态化”优化;

一分钟不长,希望大伙有收获。

本文分享自微信公众号 - 架构师之路(road5858),作者:58沈剑

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一分钟了解互联网动静分离架构

    一、静态页面 静态页面,是指互联网架构中,几乎不变的页面(或者变化频率很低),例如: 首页等html页面 js/css等样式文件 jpg/apk等资源文件 ? ...

    架构师之路
  • MySQL的or/in/union与索引优化 | 架构师之路

    本文缘起自《一分钟了解索引技巧》的作业题。 假设订单业务表结构为: order(oid, date, uid, status, money, time, …) ...

    架构师之路
  • 自增主键,三类插入测验答案,在这里。

    《三类插入与自增键的关系》一文,基本解答了《自增键四道测验题》,仍有水友要求贴答案,原理都解释了,copy语句执行下,真的难么? 画外音:你们赢了,我还是贴一下...

    架构师之路
  • 一分钟了解互联网动静分离架构

    一、静态页面 静态页面,是指互联网架构中,几乎不变的页面(或者变化频率很低),例如: 首页等html页面 js/css等样式文件 jpg/apk等资源文件 静态...

    企鹅号小编
  • 一分钟了解互联网动静分离架构

    一、静态页面 静态页面,是指互联网架构中,几乎不变的页面(或者变化频率很低),例如: 首页等html页面 js/css等样式文件 jpg/apk等资源文件 ? ...

    架构师之路
  • 一分钟了解互联网动静分离架构

    既然静态页面访问快,动态页面生成慢,有没有可能,将原本需要动态生成的站点提前生成好,使用静态页面加速技术来访问呢?

    纯洁的微笑
  • 一分钟了解互联网动静分离架构

    一、静态页面 静态页面,是指互联网架构中,几乎不变的页面(或者变化频率很低),例如: 首页等html页面 js/css等样式文件 jpg/apk等资源文件 静态...

    企鹅号小编
  • 开发过程 - 工程师规范

    申霖
  • uniapp 路由与页面跳转

    uni.navigateTo(OBJECT) 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。

    达达前端
  • 设计社区类Web原型制作分享-Behance

    Behance 是著名设计社区,创意设计人士可以展示自己的作品,发现别人分享的创意作品。

    奔跑的小鹿

扫码关注云+社区

领取腾讯云代金券