999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

大型網(wǎng)站的架構(gòu)模式研究

2016-06-05 15:01:27鄭逸凡
關(guān)鍵詞:用戶

鄭逸凡

(福州外語外貿(mào)學(xué)院福建福州350202)

大型網(wǎng)站的架構(gòu)模式研究

鄭逸凡

(福州外語外貿(mào)學(xué)院福建福州350202)

隨著網(wǎng)站規(guī)模的不斷擴大,用戶的訪問量逐漸增加,簡單的LAMP架構(gòu)無法支撐大型網(wǎng)站快速發(fā)展的業(yè)務(wù)需求。為了解決大型網(wǎng)站面臨的高并發(fā)、大流量等問題,大型互聯(lián)網(wǎng)企業(yè)在實踐中提出了很多解決辦法。本文從這些解決辦法中,歸納出了進行大型網(wǎng)站架構(gòu)設(shè)計時比較常見的模式。

架構(gòu)模式;分布式;大型網(wǎng)站

隨著互聯(lián)網(wǎng)的普及,人們的生活越來越離不開網(wǎng)絡(luò)媒體,特別是近些年,像淘寶、京東這類大型電商網(wǎng)站迅速發(fā)展,微博、微信等大型社交類媒體用戶持續(xù)增加。為了提升網(wǎng)站服務(wù)性能,提高用戶的訪問速度,作為這類大型網(wǎng)站的架構(gòu)師,已經(jīng)在長期的開發(fā)實踐中探索出了很多方法,這些解決方法又被更多網(wǎng)站重復(fù)使用,從而逐漸形成大型網(wǎng)站常用的架構(gòu)模式,主要有分層、分割、分布式集群、緩存、異步這幾種模式。

1.分層

分層架構(gòu)模式是最常用的架構(gòu)模式,也被稱為N層架構(gòu)模式。分層架構(gòu)模式內(nèi)部的組件被組織成水平的分層,每一層執(zhí)行特定的功能。盡管分層架構(gòu)模式?jīng)]有指定分層的數(shù)量和類型,大部分都會分成四層:展示層(presentation)、業(yè)務(wù)層(business)、持久層(persistence)、數(shù)據(jù)庫層(database)。某些情況下,業(yè)務(wù)層和持久層會合并成一個業(yè)務(wù)層,尤其是當(dāng)持久化邏輯嵌入在業(yè)務(wù)層組件中。[1]一個典型的分層架構(gòu)模式如圖1所示:

圖1 分層架構(gòu)模式

分層架構(gòu)模式的每一層對應(yīng)著網(wǎng)站的特定功能。例如,持久層負責(zé)處理用戶交互和瀏覽器通信邏輯,業(yè)務(wù)層負責(zé)執(zhí)行特定的與請求相關(guān)的業(yè)務(wù)規(guī)則。架構(gòu)中的每一層將需要完成的工作進行抽象,來滿足特定的業(yè)務(wù)請求。例如,展示層不需要知道也不需要關(guān)心如何獲取用戶數(shù)據(jù),它只需要將信息以特定的格式展示到界面上。[2]相似的,業(yè)務(wù)層不需要關(guān)心如何展示數(shù)據(jù)和數(shù)據(jù)從哪來,它只需要從持久層獲取數(shù)據(jù),對數(shù)據(jù)進行業(yè)務(wù)邏輯處理(計算、聚合等等),并將結(jié)果向上傳遞給展示層。

2.分割

大型網(wǎng)站的功能復(fù)雜、應(yīng)用眾多,如果把這些功能和應(yīng)用部署在同一臺服務(wù)器上,那么將給服務(wù)器造成很大的壓力。因此在實踐中,架構(gòu)師要對整個網(wǎng)站的功能進行拆分,然后分別部署,比如淘寶網(wǎng)就將天貓、聚劃算、阿里旅行等不同的功能模塊,部署在不同的服務(wù)器上。

對于大型網(wǎng)站,如何分割功能模塊,分割到什么程度?這是一件比較復(fù)雜的事情,首先必須理清網(wǎng)站的業(yè)務(wù)邏輯,做好網(wǎng)站的功能模塊劃分,然后編寫相應(yīng)的功能類或函數(shù),形成高內(nèi)聚、低耦合的應(yīng)用模塊,這里面涉及到面向?qū)ο蟆⒔涌凇⒎?wù)等不同的設(shè)計原則,需要架構(gòu)師在開發(fā)過程中不斷積累經(jīng)驗。

3.分布式集群

當(dāng)一個網(wǎng)站的用戶訪問量不斷增加,網(wǎng)站服務(wù)器就需要更多的CPU、內(nèi)存、存儲空間等資源,而提高單臺服務(wù)器的配置(比如升級CPU、提高硬盤容量)所需要的價格是比較昂貴的。因此一方面從經(jīng)濟利益方面考慮,可以采用分布式集群來進行部署,方法是通過在服務(wù)器端部署更多數(shù)量的、價格相對低廉的PC Server,當(dāng)用戶向網(wǎng)站發(fā)出請求時,負載均衡設(shè)備會根據(jù)當(dāng)前所有服務(wù)器的負載情況,將不同的用戶請求轉(zhuǎn)向不同的服務(wù)器。另一方面,當(dāng)網(wǎng)站架構(gòu)采用分布式集群后,可以有效防止服務(wù)器宕機的情況,比如某臺服務(wù)器突然發(fā)生故障,那么系統(tǒng)會自動將用戶的請求轉(zhuǎn)給集群中正常運行的其他服務(wù)器來處理。

目前大型網(wǎng)站普遍使用Hadoop及其MapReduce分布式計算框架進行批處理計算,其特點是移動計算,將計算程序分發(fā)到數(shù)據(jù)所在的位置以加速計算,典型的Hadoop分布式系統(tǒng)架構(gòu)如圖2所示。

圖2 Hadoop分布式系統(tǒng)架構(gòu)

Hadoop是可擴展的集群,它采用非共享系統(tǒng)處理大規(guī)模并行數(shù)據(jù)。Hadoop的總體概念是單個節(jié)點對于整個集群的穩(wěn)定性和性能來說并不重要。根據(jù)這種設(shè)計理念,我們可以在單個節(jié)點上選擇能夠高效處理少量(相對于整體的數(shù)據(jù)量大小)數(shù)據(jù)的硬件并且在硬件層面也無需過分追求穩(wěn)定性和冗余性。[3]Hadoop集群由多種類型的服務(wù)器所組成。它們中有主節(jié)點,比如NameNode、備份NameNode以及JobTracker,還有稱為DataNode的工作節(jié)點。除了核心的Hadoop成員外,我們通常還會采用多種輔助服務(wù)器,比如網(wǎng)關(guān)、Hue服務(wù)器以及Hive元存儲服務(wù)器。

4.緩存

緩存就是用來避免頻繁的到主存儲器(一般來說可能是數(shù)據(jù)庫,結(jié)構(gòu)化的磁盤文件,遠程網(wǎng)絡(luò)接口,程序接口等等提供數(shù)據(jù)返回的)獲取數(shù)據(jù)而建立的一個存取更快的臨時存儲器。緩存的主要目的是為了提高數(shù)據(jù)的讀取速度,因為服務(wù)器和瀏覽器之間存在著流量的瓶頸,所以讀取大容量數(shù)據(jù)時,可以將緩存中的數(shù)據(jù)直接返回給瀏覽器,以減少瀏覽器與服務(wù)器之間數(shù)據(jù)交互,從而提高網(wǎng)站的性能。[4]網(wǎng)站緩存的實現(xiàn)方式主要有以下幾種:

(1)動態(tài)頁面的靜態(tài)化。應(yīng)用程序把動態(tài)生成的頁面緩存到文件服務(wù)器,以后用戶請求該動態(tài)頁面,直接從文件服務(wù)器加載對應(yīng)的靜態(tài)緩存的html文件返回給用戶,這里面主要節(jié)省了應(yīng)用程序的執(zhí)行時間和數(shù)據(jù)庫訪問時間,但是會增加緩存框架的加載和緩存查找的時間。

(2)把解釋執(zhí)行的開發(fā)語言編譯成為目標(biāo)代碼。將解釋執(zhí)行的高級語言(如java,php),直接編譯成為平臺相關(guān)的目標(biāo)代碼,在java里面,比較著名的就是即時編譯器(JIT)。該方法主要節(jié)省了解釋執(zhí)行代碼的時間,但會增加即時編譯的時間。

(3)利用反向代理服務(wù)器的緩存。利用類似nginx的反向代理服務(wù)器,對請求的url對應(yīng)的輸出進行緩存。一般情況下,當(dāng)用戶向web服務(wù)器發(fā)出請求時,首先是經(jīng)過反向代理服務(wù)器,由反向代理服務(wù)器根據(jù)當(dāng)前服務(wù)器的資源使用情況,將不同用戶的請求轉(zhuǎn)發(fā)給不同的服務(wù)器,當(dāng)服務(wù)器處理完畢,把結(jié)果通過反向代理服務(wù)器返回給用戶。如果把用戶最經(jīng)常訪問的數(shù)據(jù),緩存在反向代理服務(wù)器上,那么當(dāng)用戶發(fā)出請求后,直接就可以從反向代理服務(wù)器的緩存中獲取到數(shù)據(jù),這樣就加快了網(wǎng)站的響應(yīng)速度。

(4)客戶端瀏覽器緩存。當(dāng)客戶端發(fā)出的http請求中包含If-Modified-Since,如果服務(wù)器端代碼沒有修改,則返回302響應(yīng)代碼的請求響應(yīng)頭(內(nèi)容不返回);當(dāng)客戶端發(fā)現(xiàn)如果上次請求的頁面還未過期,通過Expires或者Cache-Control進行辨別,直接顯示本機緩存的內(nèi)容,不與服務(wù)器進行通信,節(jié)省了服務(wù)器執(zhí)行代碼時間以及數(shù)據(jù)傳輸時間。

5.異步

在大型網(wǎng)站架構(gòu)中,采用異步模式可以降低網(wǎng)站的耦合度。當(dāng)用戶向web服務(wù)器發(fā)出請求,網(wǎng)站應(yīng)用層要對用戶的業(yè)務(wù)邏輯進行處理,然后將處理的結(jié)果返回給用戶,若采用同步的架構(gòu)模式,當(dāng)業(yè)務(wù)邏輯處理的時間比較長時,用戶將出現(xiàn)長時間的等待,大大降低了網(wǎng)站的用戶體驗度。如果采用異步的方式,當(dāng)用戶發(fā)出請求后就可以繼續(xù)處理其他的業(yè)務(wù),web服務(wù)器接收到請求信息并處理完成后,通過異步的方式把執(zhí)行結(jié)果返回給用戶。

在大型網(wǎng)站中,一般采用消息隊列的方式來實現(xiàn)異步的架構(gòu)模式。網(wǎng)站的應(yīng)用層執(zhí)行完相關(guān)業(yè)務(wù)后,把消息給消息隊列然后直接返回客戶端,這樣就避免了處理復(fù)雜的業(yè)務(wù)邏輯然后同步的插入到數(shù)據(jù)庫后再返回造成的響應(yīng)延遲,實現(xiàn)了應(yīng)用解耦。[5]在很多網(wǎng)站上用戶提交訂單就是這么處理的,如圖3所示。

圖3 用戶訂單處理

訂單系統(tǒng)生成一個訂單號之后,將訂單丟給消息隊列,然后直接跳轉(zhuǎn)到訂單成功頁面,此時庫存系統(tǒng)對訂單還沒有處理完畢,因為其中涉及到比較多的數(shù)據(jù)操作,比如減庫存,數(shù)據(jù)庫同步等等,而用戶如果想要看到訂單詳情,需要點擊“訂單號”才能進入到訂單詳情頁,這種處理也是因為消息隊列的非及時性。

6.結(jié)束語

大型網(wǎng)站架構(gòu)從來都不是一個預(yù)先定義的架構(gòu),而是一個演進式的架構(gòu)。很少有一個網(wǎng)站從建站開始,就能夠因具備大型網(wǎng)站的所有屬性而一成不變的,從最簡單的LAMP架構(gòu),再到基于IOE的大型集中式應(yīng)用架構(gòu),再演變成時下的分布式應(yīng)用架構(gòu),隨著網(wǎng)站用戶規(guī)模的擴大,架構(gòu)也在不斷演進。

[1]韓樹河.大型網(wǎng)站應(yīng)用技術(shù)架構(gòu)演變的研究[J].吉林化工學(xué)院學(xué)報,2015,01: 53-56.

[2]房輝,常盛.大型網(wǎng)站高性能架構(gòu)研究[J].信息系統(tǒng)工程,2015,12:76-77.

[3]張建超,張連堂.網(wǎng)站架構(gòu)演變技術(shù)研究[J].現(xiàn)代計算機(專業(yè)版),2012,04:53-55.

[4]包立輝,黃彥飛.高并發(fā)網(wǎng)站的架構(gòu)研究及解決方案[J].計算機科學(xué),2012,S2: 184-187.

[5]劉敏娜,解爭龍.基于SSI框架的高性能網(wǎng)站服務(wù)器端優(yōu)化技術(shù)[J].計算技術(shù)與自動化,2014,03:139-144.

TP393

A

2095-7327(2016)-12-0151-02

2014年福建省大學(xué)生創(chuàng)新訓(xùn)練項目,項目名稱為基于PC和移動終端的校園生活服務(wù)網(wǎng)站和APP設(shè)計,項目編號為201413762044。

鄭逸凡(1983—),男,講師,軟件設(shè)計師,主要研究方向為web開發(fā)、軟件設(shè)計。

猜你喜歡
用戶
雅閣國內(nèi)用戶交付突破300萬輛
車主之友(2022年4期)2022-08-27 00:58:26
您撥打的用戶已戀愛,請稍后再哭
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年5期)2016-11-28 09:55:15
兩新黨建新媒體用戶與全網(wǎng)新媒體用戶之間有何差別
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
挖掘用戶需求尖端科技應(yīng)用
Camera360:拍出5億用戶
100萬用戶
主站蜘蛛池模板: 色老头综合网| 国产裸舞福利在线视频合集| 国产视频久久久久| 亚洲日本中文字幕天堂网| 国产性生大片免费观看性欧美| 亚洲成a人片在线观看88| 99视频在线免费观看| 国产视频久久久久| 久久一日本道色综合久久| 欧美亚洲日韩中文| 亚洲天堂视频在线免费观看| 国产99精品视频| 国产福利小视频在线播放观看| 青青草国产一区二区三区| 色天天综合| 欧美成在线视频| 亚洲成A人V欧美综合天堂| 国产精品永久久久久| 97亚洲色综久久精品| 色噜噜狠狠狠综合曰曰曰| 91精品国产自产在线老师啪l| 在线看国产精品| 99资源在线| 国产精品毛片一区视频播| 四虎影视库国产精品一区| 国产女人在线视频| 在线观看国产精品第一区免费| 狠狠色丁香婷婷综合| 亚洲欧美在线精品一区二区| 污污网站在线观看| 好吊色妇女免费视频免费| 国产一区二区免费播放| 欧美第二区| 四虎精品国产AV二区| 一级爱做片免费观看久久| 无码在线激情片| 国产在线97| 午夜精品福利影院| 日韩欧美在线观看| 91精品福利自产拍在线观看| 国产成人午夜福利免费无码r| 亚洲精品在线91| 成年人免费国产视频| 国产91色在线| 久久综合国产乱子免费| 免费不卡在线观看av| 免费激情网址| 午夜毛片福利| 国产中文一区a级毛片视频 | 亚洲系列中文字幕一区二区| 92精品国产自产在线观看| 在线观看精品国产入口| 亚洲欧美日韩另类在线一| 色九九视频| 丝袜美女被出水视频一区| 成人福利一区二区视频在线| 国产人妖视频一区在线观看| 久久综合干| 国产成人无码久久久久毛片| 亚洲中文字幕无码mv| 国产成人做受免费视频| 人妻出轨无码中文一区二区| 亚洲精品男人天堂| 国产麻豆aⅴ精品无码| 久久96热在精品国产高清 | 欧美无专区| 亚洲视频色图| 欧美中文字幕在线视频| 亚洲精品国产日韩无码AV永久免费网| 91久久偷偷做嫩草影院| 欧美五月婷婷| 欧美成人怡春院在线激情| 一本大道香蕉高清久久| 国产噜噜噜视频在线观看| 欧美不卡二区| 99偷拍视频精品一区二区| 激情亚洲天堂| 亚洲国产一区在线观看| 欧美特黄一级大黄录像| 国产又大又粗又猛又爽的视频| 国产主播在线一区| 狠狠亚洲五月天|