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

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

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

網(wǎng)站欄目:如何打造一個高可用、高性能、易擴展、可伸縮且安全的網(wǎng)站
網(wǎng)頁URL:http://muchs.cn/news49/276999.html

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

廣告

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

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