如何打造一個(gè)高可用、高性能、易擴(kuò)展、可伸縮且安全的網(wǎng)站

2023-08-18    分類: 網(wǎng)站建設(shè)

首先來(lái)看看大型網(wǎng)站軟件系統(tǒng)的特點(diǎn),有以下特點(diǎn):
1、高并發(fā),大流量
2、高可用:系統(tǒng)24小時(shí)不間斷服務(wù)
3、海量數(shù)據(jù)
4、用戶分布廣泛,網(wǎng)絡(luò)情況復(fù)雜
5、環(huán)境惡劣
6、需求快速變更,發(fā)布頻繁
7、漸進(jìn)式發(fā)展
大型網(wǎng)站核心架構(gòu)要素
性能:性能是網(wǎng)站的一個(gè)重要指標(biāo),除非是沒(méi)得選擇(比如只能到www.12306.cn這一個(gè)網(wǎng)站上買火車票),否則用戶無(wú)法忍受一個(gè)響應(yīng)緩慢的網(wǎng)站。一個(gè)打開(kāi)緩慢的網(wǎng)站會(huì)導(dǎo)致嚴(yán)重的用戶流失,很多時(shí)候網(wǎng)站性能問(wèn)題是網(wǎng)站架構(gòu)升級(jí)優(yōu)化的觸發(fā)器??梢哉f(shuō)性能是網(wǎng)站架構(gòu)設(shè)計(jì)的一個(gè)重要方面,任何軟件架構(gòu)設(shè)計(jì)方案都要考慮可能會(huì)帶來(lái)的性能問(wèn)題。
也正是因?yàn)樾阅軉?wèn)題幾乎無(wú)處不在,所以優(yōu)化網(wǎng)站性能的手段也非常多,從用戶瀏覽器到數(shù)據(jù)庫(kù),影響用戶請(qǐng)求的所有環(huán)節(jié)都可以進(jìn)行性能優(yōu)化。在瀏覽器端,可以通過(guò)瀏覽器緩存、使用頁(yè)面壓縮、合理布局頁(yè)面、減少Cookie傳輸?shù)仁侄胃纳菩阅堋?br />還可以使用CDN,將網(wǎng)站靜態(tài)內(nèi)容分發(fā)至離用戶的網(wǎng)絡(luò)服務(wù)商機(jī)房,使用戶通過(guò)訪問(wèn)路徑獲取數(shù)據(jù)??梢栽诰W(wǎng)站機(jī)房部署反向代理服務(wù)器,緩存熱點(diǎn)文件,加快請(qǐng)求響應(yīng)速度,減輕應(yīng)用服務(wù)器負(fù)載壓力。
在應(yīng)用服務(wù)器端,可以使用服務(wù)器本地緩存和分布式緩存,通過(guò)緩存在內(nèi)存中的熱點(diǎn)數(shù)據(jù)處理用戶請(qǐng)求,加快請(qǐng)求處理過(guò)程,減輕數(shù)據(jù)庫(kù)負(fù)載壓力。也可以通過(guò)異步操作將用戶請(qǐng)求發(fā)送至消息隊(duì)列等待后續(xù)任務(wù)處理,而當(dāng)前請(qǐng)求直接返回響應(yīng)給用戶。在網(wǎng)站有很多用戶高并發(fā)請(qǐng)求的情況下,可以將多臺(tái)應(yīng)用服務(wù)器組成一個(gè)集群共同對(duì)外服務(wù),提高整體處理能力,改善性能。
在代碼層面,也可以通過(guò)使用多線程、改善內(nèi)存管理等手段優(yōu)化性能。在數(shù)據(jù)庫(kù)服務(wù)器端,索引、緩存、SQL優(yōu)化等性能優(yōu)化手段都已經(jīng)比較成熟。而方興未艾的NoSQL數(shù)據(jù)庫(kù)通過(guò)優(yōu)化數(shù)據(jù)模型、存儲(chǔ)結(jié)構(gòu)、伸縮特性等手段在性能方面的優(yōu)勢(shì)也日趨明顯。
衡量網(wǎng)站性能有一系列指標(biāo),重要的有響應(yīng)時(shí)間、TPS、系統(tǒng)性能計(jì)數(shù)器等,通過(guò)測(cè)試這些指標(biāo)以確定系統(tǒng)設(shè)計(jì)是否達(dá)到目標(biāo)。這些指標(biāo)也是網(wǎng)站監(jiān)控的重要參數(shù),通過(guò)監(jiān)控這些指標(biāo)可以分析系統(tǒng)瓶頸,預(yù)測(cè)網(wǎng)站容量,并對(duì)異常指標(biāo)進(jìn)行報(bào)警,保障系統(tǒng)可用性。
可用性:網(wǎng)站高可用的主要手段是冗余,應(yīng)用部署在多臺(tái)服務(wù)器上同時(shí)提供訪問(wèn),數(shù)據(jù)存儲(chǔ)在多臺(tái)服務(wù)器上互相備份,任何一臺(tái)服務(wù)器宕機(jī)都不會(huì)影響應(yīng)用的整體可用,也不會(huì)導(dǎo)致數(shù)據(jù)丟失。
對(duì)于應(yīng)用服務(wù)器而言,多臺(tái)應(yīng)用服務(wù)器通過(guò)負(fù)載均衡設(shè)備組成一個(gè)集群共同對(duì)外提供服務(wù),任何一臺(tái)服務(wù)器宕機(jī),只需把請(qǐng)求切換到其他服務(wù)器就可實(shí)現(xiàn)應(yīng)用的高可用,但是一個(gè)前提條件是應(yīng)用服務(wù)器上不能保存請(qǐng)求的會(huì)話信息。否則服務(wù)器宕機(jī),會(huì)話丟失,即使將用戶請(qǐng)求轉(zhuǎn)發(fā)到其他服務(wù)器上也無(wú)法完成業(yè)務(wù)處理。
伸縮性:衡量架構(gòu)伸縮性的主要標(biāo)準(zhǔn)就是是否可以用多臺(tái)服務(wù)器構(gòu)建集群,是否容易向集群中添加新的服務(wù)器。加入新的服務(wù)器后是否可以提供和原來(lái)的服務(wù)器無(wú)差別的服務(wù)。集群中可容納的總的服務(wù)器數(shù)量是否有限制。
擴(kuò)展性:不同于其他架構(gòu)要素主要關(guān)注非功能性需求,網(wǎng)站的擴(kuò)展性架構(gòu)直接關(guān)注網(wǎng)站的功能需求。網(wǎng)站快速發(fā)展,功能不斷擴(kuò)展,如何設(shè)計(jì)網(wǎng)站的架構(gòu)使其能夠快速響應(yīng)需求變化,是網(wǎng)站可擴(kuò)展架構(gòu)主要的目的。
網(wǎng)站可伸縮架構(gòu)的主要手段是事件驅(qū)動(dòng)架構(gòu)和分布式服務(wù)。
事件驅(qū)動(dòng)架構(gòu)在網(wǎng)站通常利用消息隊(duì)列實(shí)現(xiàn),將用戶請(qǐng)求和其他業(yè)務(wù)事件構(gòu)造成消息發(fā)布到消息隊(duì)列,消息的處理者作為消費(fèi)者從消息隊(duì)列中獲取消息進(jìn)行處理。通過(guò)這種方式將消息產(chǎn)生和消息處理分離開(kāi)來(lái),可以透明地增加新的消息生產(chǎn)者任務(wù)或者新的消息消費(fèi)者任務(wù)。

網(wǎng)站欄目:如何打造一個(gè)高可用、高性能、易擴(kuò)展、可伸縮且安全的網(wǎng)站
網(wǎng)頁(yè)URL:http://www.bm7419.com/news49/276999.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司網(wǎng)站內(nèi)鏈、網(wǎng)站制作建站公司、手機(jī)網(wǎng)站建設(shè)、虛擬主機(jī)

廣告

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

外貿(mào)網(wǎng)站建設(shè)