亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

小型電商網(wǎng)站的頁(yè)面展示采用頁(yè)面全量靜態(tài)化的思想。數(shù)據(jù)庫(kù)中存放了所有的商品信息,頁(yè)面靜態(tài)化系統(tǒng),將數(shù)據(jù)填充進(jìn)靜態(tài)模板中,形成靜態(tài)化頁(yè)面,推入 Nginx 服務(wù)器。用戶瀏覽網(wǎng)站頁(yè)面時(shí),取用一個(gè)已經(jīng)靜態(tài)化好的 html 頁(yè)面,直接返回回去,不涉及任何的業(yè)務(wù)邏輯處理。

電商網(wǎng)站的商品詳情頁(yè)系統(tǒng)架構(gòu)

 

下面是頁(yè)面模板的簡(jiǎn)單 Demo 。

<html>
 <body>
 商品名稱:#{productName}<br>
 商品價(jià)格:#{productPrice}<br>
 商品描述:#{productDesc}
 </body>
</html>

這樣做,好處在于,用戶每次瀏覽一個(gè)頁(yè)面,不需要進(jìn)行任何的跟數(shù)據(jù)庫(kù)的交互邏輯,也不需要執(zhí)行任何的代碼,直接返回一個(gè) html 頁(yè)面就可以了,速度和性能非常高。

對(duì)于小網(wǎng)站,頁(yè)面很少,很實(shí)用,非常簡(jiǎn)單,JAVA 中可以使用 velocity、freemarker、thymeleaf 等等,然后做個(gè) cms 頁(yè)面內(nèi)容管理系統(tǒng),模板變更的時(shí)候,點(diǎn)擊按鈕或者系統(tǒng)自動(dòng)化重新進(jìn)行全量渲染。

壞處在于,僅僅適用于一些小型的網(wǎng)站,比如頁(yè)面的規(guī)模在幾十到幾萬(wàn)不等。對(duì)于一些大型的電商網(wǎng)站,億級(jí)數(shù)量的頁(yè)面,你說你每次頁(yè)面模板修改了,都需要將這么多頁(yè)面全量靜態(tài)化,靠譜嗎?每次渲染花個(gè)好幾天時(shí)間,那你整個(gè)網(wǎng)站就廢掉了。

大型電商網(wǎng)站的商品詳情頁(yè)系統(tǒng)架構(gòu)

大型電商網(wǎng)站商品詳情頁(yè)的系統(tǒng)設(shè)計(jì)中,當(dāng)商品數(shù)據(jù)發(fā)生變更時(shí),會(huì)將變更消息壓入 MQ 消息隊(duì)列中。緩存服務(wù)從消息隊(duì)列中消費(fèi)這條消息時(shí),感知到有數(shù)據(jù)發(fā)生變更,便通過調(diào)用數(shù)據(jù)服務(wù)接口,獲取變更后的數(shù)據(jù),然后將整合好的數(shù)據(jù)推送至 redis 中。Nginx 本地緩存的數(shù)據(jù)是有一定的時(shí)間期限的,比如說 10 分鐘,當(dāng)數(shù)據(jù)過期之后,它就會(huì)從 redis 獲取到最新的緩存數(shù)據(jù),并且緩存到自己本地。

用戶瀏覽網(wǎng)頁(yè)時(shí),動(dòng)態(tài)將 Nginx 本地?cái)?shù)據(jù)渲染到本地 html 模板并返回給用戶。

電商網(wǎng)站的商品詳情頁(yè)系統(tǒng)架構(gòu)

 

雖然沒有直接返回 html 頁(yè)面那么快,但是因?yàn)閿?shù)據(jù)在本地緩存,所以也很快,其實(shí)耗費(fèi)的也就是動(dòng)態(tài)渲染一個(gè) html 頁(yè)面的性能。如果 html 模板發(fā)生了變更,不需要將所有的頁(yè)面重新靜態(tài)化,也不需要發(fā)送請(qǐng)求,沒有網(wǎng)絡(luò)請(qǐng)求的開銷,直接將數(shù)據(jù)渲染進(jìn)最新的 html 頁(yè)面模板后響應(yīng)即可。

在這種架構(gòu)下,我們需要保證系統(tǒng)的高可用性。

如果系統(tǒng)訪問量很高,Nginx 本地緩存過期失效了,redis 中的緩存也被 LRU 算法給清理掉了,那么會(huì)有較高的訪問量,從緩存服務(wù)調(diào)用商品服務(wù)。但如果此時(shí)商品服務(wù)的接口發(fā)生故障,調(diào)用出現(xiàn)了延時(shí),緩存服務(wù)全部的線程都被這個(gè)調(diào)用商品服務(wù)接口給耗盡了,每個(gè)線程去調(diào)用商品服務(wù)接口的時(shí)候,都會(huì)卡住很長(zhǎng)時(shí)間,后面大量的請(qǐng)求過來都會(huì)卡在那兒,此時(shí)緩存服務(wù)沒有足夠的線程去調(diào)用其它一些服務(wù)的接口,從而導(dǎo)致整個(gè)大量的商品詳情頁(yè)無(wú)法正常顯示。

這其實(shí)就是一個(gè)商品接口服務(wù)故障導(dǎo)致緩存服務(wù)資源耗盡的現(xiàn)象。

分享到:
標(biāo)簽:架構(gòu)
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定