自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

動(dòng)靜分離架構(gòu),究竟是啥?

開(kāi)發(fā) 開(kāi)發(fā)工具
前兩天簡(jiǎn)單介紹了“前臺(tái)與后臺(tái)分離”的架構(gòu)設(shè)計(jì)準(zhǔn)則,又有水友提問(wèn):能不能順帶介紹下“動(dòng)靜分離”的架構(gòu)設(shè)計(jì)準(zhǔn)則呢?今天花1分鐘簡(jiǎn)單說(shuō)說(shuō)。

前兩天簡(jiǎn)單介紹了“前臺(tái)與后臺(tái)分離”的架構(gòu)設(shè)計(jì)準(zhǔn)則,又有水友提問(wèn):能不能順帶介紹下“動(dòng)靜分離”的架構(gòu)設(shè)計(jì)準(zhǔn)則呢?今天花1分鐘簡(jiǎn)單說(shuō)說(shuō)。

什么是動(dòng)靜分離架構(gòu)設(shè)計(jì)準(zhǔn)則?

動(dòng)靜分離是指,靜態(tài)頁(yè)面與動(dòng)態(tài)頁(yè)面解耦分離,用不同系統(tǒng)承載對(duì)應(yīng)流量的架構(gòu)設(shè)計(jì)方法。

什么是靜態(tài)頁(yè)面?

靜態(tài)頁(yè)面,是指互聯(lián)網(wǎng)架構(gòu)中,幾乎不變的頁(yè)面(或者變化頻率很低),例如:

  • 首頁(yè)等html頁(yè)面
  • js/css等樣式文件
  • jpg/apk等資源文件

靜態(tài)頁(yè)面,有與之匹配的技術(shù)架構(gòu)來(lái)加速,例如:

 

  • CDN
  • nginx
  • squid/varnish

什么是動(dòng)態(tài)頁(yè)面?

動(dòng)態(tài)頁(yè)面,是指互聯(lián)網(wǎng)架構(gòu)中,不同用戶不同場(chǎng)景訪問(wèn),都不一樣的頁(yè)面,例如:

  • 百度搜索結(jié)果頁(yè)
  • 淘寶商品列表頁(yè)
  • 速運(yùn)個(gè)人訂單中心頁(yè)

這些頁(yè)面,不同用戶,不同場(chǎng)景訪問(wèn),大都會(huì)動(dòng)態(tài)生成不同的頁(yè)面。

動(dòng)態(tài)頁(yè)面,有與之匹配的技術(shù)架構(gòu),例如:

  • 分層架構(gòu)
  • 服務(wù)化架構(gòu)
  • 數(shù)據(jù)庫(kù),緩存架構(gòu)

架構(gòu)上,如何實(shí)施動(dòng)靜分離架構(gòu)?

靜態(tài)頁(yè)面與動(dòng)態(tài)頁(yè)面解耦分離,用不同系統(tǒng)承載對(duì)應(yīng)流量的架構(gòu),如下圖所示。

  • 靜態(tài)頁(yè)面訪問(wèn)路徑短,訪問(wèn)速度快,幾毫秒
  • 動(dòng)態(tài)頁(yè)面訪問(wèn)路徑長(zhǎng),訪問(wèn)速度相對(duì)較慢(數(shù)據(jù)庫(kù)的訪問(wèn),網(wǎng)絡(luò)傳輸,業(yè)務(wù)邏輯計(jì)算),幾十毫秒甚至幾百毫秒,對(duì)架構(gòu)擴(kuò)展性的要求更高
  • 靜態(tài)頁(yè)面與動(dòng)態(tài)頁(yè)面以不同域名區(qū)分

既然靜態(tài)頁(yè)面訪問(wèn)快,動(dòng)態(tài)頁(yè)面生成慢,有沒(méi)有可能,將原本需要?jiǎng)討B(tài)生成的站點(diǎn)提前生成好,使用靜態(tài)頁(yè)面加速技術(shù)來(lái)訪問(wèn)呢?

可以,這就是互聯(lián)網(wǎng)架構(gòu)中的“頁(yè)面靜態(tài)化”優(yōu)化技術(shù)。

什么是頁(yè)面靜態(tài)化技術(shù)?

舉個(gè)栗子,如下圖,58同城的帖子詳情頁(yè),原本是需要?jiǎng)討B(tài)生成的:

  • 端訪問(wèn)/detail/12348888x.shtml 詳情頁(yè);
  • web-server層從RESTful接口中,解析出帖子id是12348888;
  • service通過(guò)DAO層拼裝SQL,訪問(wèn)數(shù)據(jù)庫(kù);
  • 最終獲取數(shù)據(jù),拼裝html返回瀏覽器;

而“頁(yè)面靜態(tài)化”是指,將帖子ID為12348888的帖子12348888x.shtml提前生成好,由靜態(tài)頁(yè)面相關(guān)加速技術(shù)來(lái)加速:

這樣的話,將極大提升訪問(wèn)速度,減少訪問(wèn)時(shí)間,提高用戶體驗(yàn)。

頁(yè)面靜態(tài)化,適合什么業(yè)務(wù)場(chǎng)景?

一切脫離業(yè)務(wù)的架構(gòu)設(shè)計(jì)都是耍流氓,并不是所有的業(yè)務(wù)場(chǎng)景都適合頁(yè)面靜態(tài)化,濫用該技術(shù),反而會(huì)降低系統(tǒng)性能。

 

頁(yè)面靜態(tài)化,適用于:總數(shù)據(jù)量不大,生成靜態(tài)頁(yè)面數(shù)量不多的業(yè)務(wù)。

舉一些栗子:

  • 快狗打車的城市頁(yè)只有幾百個(gè),就可以用這個(gè)優(yōu)化,只需提前生成幾百個(gè)城市的“靜態(tài)化頁(yè)面”即可;
  • 一些二手車業(yè)務(wù),只有幾萬(wàn)量二手車庫(kù)存,也可以提前生成這幾萬(wàn)量二手車的靜態(tài)頁(yè)面;
  • 像58同城這樣的信息模式業(yè)務(wù),有幾十億的帖子量,就不太適合于靜態(tài)化(碎片文件多,反而訪問(wèn)慢);

簡(jiǎn)單總結(jié)

  • 動(dòng)靜分離是指,靜態(tài)頁(yè)面與動(dòng)態(tài)頁(yè)面解耦分離,用不同系統(tǒng)承載流量的架構(gòu)設(shè)計(jì)方法;
  • “頁(yè)面靜態(tài)化”是一種將原本需要?jiǎng)討B(tài)生成的站點(diǎn)提前生成靜態(tài)站點(diǎn)的優(yōu)化技術(shù);
  • 總數(shù)據(jù)量不大,生成靜態(tài)頁(yè)面數(shù)量不多的業(yè)務(wù),非常適合于“頁(yè)面靜態(tài)化”優(yōu)化;

一分鐘不長(zhǎng),希望大伙有收獲。

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文

 

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2014-08-05 09:43:59

超級(jí)手機(jī)病毒XXshengqi

2019-01-03 14:45:07

CPUMCUFPGA

2022-02-22 08:48:49

AgentClient主機(jī)

2025-03-31 00:33:00

2023-10-18 09:42:09

OpenAIGPU手機(jī)

2011-02-28 09:51:43

內(nèi)省

2019-04-26 13:55:02

Istio微服務(wù)架構(gòu)

2011-02-16 16:13:40

Debian

2025-02-25 14:07:25

2019-05-30 16:27:34

2013-04-01 09:16:50

2019-07-22 15:29:53

JavaScriptGitHub語(yǔ)言

2018-07-05 16:15:26

緩存數(shù)據(jù)cache miss

2010-08-24 09:19:59

2019-06-04 14:15:08

JavaScript V8前端

2021-11-02 09:20:23

區(qū)塊鏈比特幣架構(gòu)

2015-12-14 15:34:35

開(kāi)源投資創(chuàng)業(yè)

2025-02-27 09:40:00

2016-06-17 12:31:10

Spark SQL數(shù)據(jù)處理Spark

2023-12-26 01:24:45

Jedis連接池參數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)