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

2021-02-13    分類: 網(wǎng)站建設(shè)

一、分層

最常見的架構(gòu)模式,將系統(tǒng)在橫向維度上切分成幾個部分,每個部分單一職責(zé)。網(wǎng)站一般分為三個層次:應(yīng)用層、服務(wù)層和數(shù)據(jù)層,其具體結(jié)構(gòu)如下圖所示:


通過分層,一個龐大系統(tǒng)切分成不同部分,便于分工合作和維護(hù)。

但是,分層架構(gòu)也有一些挑戰(zhàn):①必須合理規(guī)劃層次邊界和接口;②禁止跨層次的調(diào)用及逆向調(diào)用。

二、分割

分割是在縱向方面對軟件進(jìn)行切分->將不同的功能和服務(wù)分割開來,包裝成高內(nèi)聚低耦合的模塊單元,有助于軟件開發(fā)和維護(hù),還便于不同模塊的分布式部署,提高網(wǎng)站的并發(fā)處理能力和功能擴(kuò)展能力。

三、分布式

①分布式應(yīng)用和服務(wù):應(yīng)用和服務(wù)模塊分布式部署,便于業(yè)務(wù)功能擴(kuò)展;

②分布式靜態(tài)資源:JS、CSS、LOGO圖片等資源獨(dú)立部署,采用獨(dú)立域名->動靜分離;

③分布式數(shù)據(jù)和存儲:傳統(tǒng)RDBMS分布式部署和NoSQL產(chǎn)品;


④分布式計(jì)算:Hadoop及其MapReduce分布式計(jì)算框架,其特點(diǎn)是移動計(jì)算而不是移動數(shù)據(jù)。


四、集群

多臺服務(wù)器部署相同應(yīng)用構(gòu)成一個集群,通過負(fù)載均衡設(shè)備共同對外提供服務(wù)。當(dāng)某臺服務(wù)器發(fā)生故障,負(fù)載均衡設(shè)備或者系統(tǒng)的失效轉(zhuǎn)移機(jī)制將請求轉(zhuǎn)發(fā)到集群中的其他服務(wù)器上,提高系統(tǒng)的可用性,即所謂的HA(高可用性)。


所以,在網(wǎng)站應(yīng)用中,即使是訪問量很小的分布式應(yīng)用和服務(wù),也至少要部署兩臺服務(wù)器構(gòu)成一個小集群。

五、緩存

緩存是改善軟件性能的第一手段。在復(fù)雜的軟件設(shè)計(jì)中,緩存幾乎無處不在。

CDN:內(nèi)容分發(fā)網(wǎng)絡(luò),緩存網(wǎng)站的一些靜態(tài)資源;


②反向代理:部署在網(wǎng)站的前端,最先訪問到的就是反向代理服務(wù)器;


③本地緩存:在應(yīng)用服務(wù)器本地緩存熱點(diǎn)數(shù)據(jù),無需訪問數(shù)據(jù)庫;

④分布式緩存:應(yīng)用程序通過網(wǎng)絡(luò)通信訪問緩存數(shù)據(jù);


網(wǎng)站應(yīng)用中,緩存除了可以加快數(shù)據(jù)訪問速度,還可以減輕后端應(yīng)用和數(shù)據(jù)存儲的負(fù)載壓力。

六、異步

業(yè)務(wù)之間的消息傳遞不是同步調(diào)用,而是將一個業(yè)務(wù)操作分成多個階段,每個階段之間通過共享數(shù)據(jù)的方式異步執(zhí)行進(jìn)行協(xié)作。

異步架構(gòu)是典型的生產(chǎn)者消費(fèi)者模式,兩者不存在直接調(diào)用,只要保持?jǐn)?shù)據(jù)結(jié)構(gòu)不變,彼此功能實(shí)現(xiàn)可以隨意變化而不互相影響,這對網(wǎng)站擴(kuò)展新功能非常便利。


異步消息隊(duì)列可以提高系統(tǒng)可用性、加快網(wǎng)站響應(yīng)速度,消除并發(fā)訪問高峰。

七、冗余

要想保證在服務(wù)器宕機(jī)的情況下網(wǎng)站依然可以繼續(xù)服務(wù),不丟失數(shù)據(jù),就需要一定程度的服務(wù)器冗余運(yùn)行,數(shù)據(jù)冗余備份,這樣當(dāng)某臺服務(wù)器宕機(jī)時,可以將其上的服務(wù)和數(shù)據(jù)訪問轉(zhuǎn)移到其他機(jī)器上。

數(shù)據(jù)庫除了定期備份存檔保存實(shí)現(xiàn)冷備份之外,為了保證在線業(yè)務(wù)高可用,還需要對數(shù)據(jù)庫進(jìn)行主從分離,實(shí)時同步實(shí)現(xiàn)熱備份。


八、自動化

在無人值守的情況下,網(wǎng)站可以正常運(yùn)行,一切都可以自動化是網(wǎng)站的理想狀態(tài)。目前大型網(wǎng)站的自動化架構(gòu)設(shè)計(jì)主要集中在發(fā)布運(yùn)維方面。

①發(fā)布部署過程自動化;

②自動化代碼管理;

③自動化測試;

④自動化安全監(jiān)測;

九、安全



①通過密碼和手機(jī)校驗(yàn)碼進(jìn)行身份驗(yàn)證;

②對登錄、交易等操作進(jìn)行加密;

③使用驗(yàn)證碼進(jìn)行識別;

④對于常見的XSS攻擊、SQL注入、編碼轉(zhuǎn)換等進(jìn)行防范;

⑤對垃圾或敏感信息進(jìn)行過濾;

⑥對交易轉(zhuǎn)賬等操作進(jìn)行風(fēng)險控制;

好的設(shè)計(jì)絕對不是模仿,不是生搬硬套某個模式,而是對問題深刻理解之上的創(chuàng)造與創(chuàng)新,即使是“微創(chuàng)新”,也是讓人耳目一新的似曾相識。山寨與創(chuàng)新的大區(qū)別不在于是否抄襲,是否模仿,而在于對問題和需求是否真正理解與把握。


本章思維導(dǎo)圖


網(wǎng)站欄目:大型網(wǎng)站的分層架構(gòu)模式
標(biāo)題URL:http://www.muchs.cn/news/100663.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、外貿(mào)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站響應(yīng)式網(wǎng)站、小程序開發(fā)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)