×

網(wǎng)站分層架構(gòu)五大要素

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-04-18 16:51:54

整個網(wǎng)站架構(gòu)一般可以分為應用層、服務層、數(shù)據(jù)層。實踐中大的分層結(jié)構(gòu)還可以繼續(xù)分層,比如應用層還可以繼續(xù)分為視圖層和業(yè)務邏輯層,服務層也可以繼續(xù)細分為數(shù)據(jù)接口層、邏輯處理層等。通過分層,把一個龐大的系統(tǒng)切分為不同的部分,便于分工開發(fā)和維護;各層之間相互有一定的獨立性,在網(wǎng)站的開發(fā)中可以根據(jù)不同的需求進行相應的調(diào)整。邏輯上分層之后,在物理部署上也可以根據(jù)需求制定不同的策略。

整個網(wǎng)站架構(gòu)一般可以分為應用層、服務層、數(shù)據(jù)層。實踐中大的分層結(jié)構(gòu)還可以繼續(xù)分層,比如應用層還可以繼續(xù)分為視圖層和業(yè)務邏輯層,服務層也可以繼續(xù)細分為數(shù)據(jù)接口層、邏輯處理層等。通過分層,把一個龐大的系統(tǒng)切分為不同的部分,便于分工開發(fā)和維護;各層之間相互有一定的獨立性,在網(wǎng)站的開發(fā)中可以根據(jù)不同的需求進行相應的調(diào)整。邏輯上分層之后,在物理部署上也可以根據(jù)需求制定不同的策略。
 
分層架構(gòu)不僅僅是為了規(guī)劃軟件的邏輯結(jié)構(gòu),其對網(wǎng)站的高并發(fā)分布式架構(gòu)來說尤為重要。進行分層以后,可以從縱向進行業(yè)務分割,根據(jù)不同的業(yè)務模塊一個項目劃分成不同的模塊交給單獨的團隊去開發(fā)部署,完成后分別部署在不同的服務器上,通過鏈接進行互聯(lián)。再根據(jù)不同情況來對不同的節(jié)點進行冗余來保證網(wǎng)站的高可用性,接下來進行緩存、CDN、反向代理等等的優(yōu)化。
 
對于一個高訪問量、大數(shù)據(jù)量的網(wǎng)站我們需要考慮什么呢?
 
1.1 性能
 
首先就是性能了,性能是一個網(wǎng)站的的重要指標,除非是沒得選擇,就這一個網(wǎng)站,不然用戶是絕對不會忍受一個超級慢的網(wǎng)站。正因為性能問題無處不在,解決性能問題的方式也各種各樣,從用戶請求一個 url 開始,進行的每一個環(huán)節(jié)都可以進行優(yōu)化;根據(jù)上面的分層,可以大致從三個方面進行優(yōu)化,應用層優(yōu)化,服務層優(yōu)化,數(shù)據(jù)層優(yōu)化。
 
涉及到的知識就是 web 前端的優(yōu)化,應用服務器端的優(yōu)化和數(shù)據(jù)的存儲,索引,緩存等,這些在后面的內(nèi)容里會分別展開細說,但性能只是一個網(wǎng)站的必要條件,除此之外,因為無法預知網(wǎng)站可能會面臨的壓力或是攻擊,還要保證網(wǎng)站在各種情境下(高并發(fā),高負載,持續(xù)壓力不均勻等)保持穩(wěn)定的性能。包括以下各個方面:性能測試指標、性能測試方法、性能優(yōu)化策略。
 
性能測試指標
 
主要的性能測試指標有響應時間、并發(fā)數(shù)、吞吐量、性能計數(shù)器等。
 
響應時間
 
指的是從發(fā)出這個請求開始到接收到數(shù)據(jù)的時間,一般情況下這個時間都非常非常的小甚至小于測試的誤差值,所以我們可以采用重復請求的方式來獲取具體的響應時間,比如請求十萬次,記錄總時間,然后計算出單次請求的時間
 
并發(fā)數(shù)
 
指能夠同時處理的請求數(shù)目,對于網(wǎng)站而言,即并發(fā)用戶數(shù)
 
吞吐量
 
是單位時間能能夠處理的請求數(shù),體現(xiàn)的系統(tǒng)的整體處理能力> 衡量指標有很多,可以是 請求數(shù)/秒 頁面數(shù)/秒 訪問人數(shù)/天 處理業(yè)務數(shù)/小時 等> 常用的量化指標有 TPS(每秒事務數(shù)) HPS(每秒 HTTP 請求數(shù)) QPS(每秒查詢數(shù))等
 
性能計數(shù)器
 
描述服務器或操作系統(tǒng)的一些性能指標,包括系統(tǒng)負載(System Load),線程數(shù),內(nèi)存使用,磁盤和網(wǎng)絡 I/O 等,當這些值超過警告值(安全臨界值)時,就會向開發(fā)人員報警,及時處理異常。
 
性能測試方法
 
性能測試是一個統(tǒng)稱,具體可以分為性能測試、負載測試、壓力測試、穩(wěn)定性測試。性能測試以初期設(shè)計的指標為預期目標,不斷對系統(tǒng)施壓,看系統(tǒng)在預期的范圍內(nèi),能否達到預期的性能。負載測試對系統(tǒng)不斷增加并發(fā)請求以增加系統(tǒng)壓力,直到系統(tǒng)某項或多項指標達到安全臨界值,這時繼續(xù)對系統(tǒng)施加壓力,系統(tǒng)的處理能力會有所下降。壓力測試是在超過安全負載的情況下,繼續(xù)施壓,直到系統(tǒng)崩潰或不再能夠處理任何請求,以此來計算系統(tǒng)的最大壓力承受能力。
 
穩(wěn)定性測試在一定的壓力(不均勻施壓)下,系統(tǒng)能夠穩(wěn)定的運行較長時間。
 
性能優(yōu)化策略
 
要定位問題產(chǎn)生原因,排查不同環(huán)節(jié)的日志,分析哪個環(huán)節(jié)的響應時間與預期不相符,然后分析影響性能的原因,是代碼問題還是架構(gòu)設(shè)計不合理,或者系統(tǒng)資源不足,然后根據(jù)實際問題進行解決。
 
timg (4).jpg
1.2 可用性
 
對于大型網(wǎng)站而言,出現(xiàn)宕機的情況是可怕的,因為可能有上千萬的用戶量,短短幾分鐘的宕機都有可能導致網(wǎng)站聲譽掃地,如果是電商類的網(wǎng)站,更可能會導致用戶的財產(chǎn)損失,甚至會攤上官司,那時候損失的就不僅是金錢和用戶了,因此要保證能夠提供每天 24 小時的可用,但實際中服務器并不能保證每天 24 小時都能平穩(wěn)的運行,可能出現(xiàn)硬件問題,也可能出現(xiàn)軟件問題,總之問題總是會有的。
 
所以我們高可用設(shè)計的目標就是在某些服務器宕機的情況下,也能夠保證服務或應用正常運行,網(wǎng)站高可用的主要手段是冗余,應用部署在多臺服務器上同時提供訪問,數(shù)據(jù)存儲在多臺數(shù)據(jù)服務器之間互相進行熱備份,這樣任何一臺服務器宕機都不會影響服務或應用的整體,也不會產(chǎn)生數(shù)據(jù)丟失。
 
對于應用服務器而言,多臺應用服務器通過一個負載均衡設(shè)備組成一個集群同時對外提供服務,當一臺服務器宕機后,服務切換到其他服務器上繼續(xù)執(zhí)行,這樣就可以保證了網(wǎng)站的高可用性,前提是應用服務器不允許存儲用戶會話信息,否則將會丟失,這樣即使用戶請求轉(zhuǎn)接到其他服務器上面也無法繼續(xù)執(zhí)行。
 
對于數(shù)據(jù)存儲服務器,要提供服務器之間的實時備份,這樣當一臺服務器宕機的時候,將數(shù)據(jù)訪問切換到其他服務器上,并進行數(shù)據(jù)恢復和備份,衡量一個系統(tǒng)架構(gòu)設(shè)計是否滿足高可用的目標,就是假設(shè)其中一臺或多臺服務器宕機以及出現(xiàn)各種不可預期的問題時,系統(tǒng)整體是否依然可用。
 
1.3 伸縮性
 
面對著大量用戶的高并發(fā)訪問和海量的數(shù)據(jù)存儲,不可能只用一臺服務器就能夠滿足全部需求,存儲全部數(shù)據(jù)。通過集群 的方式將多臺服務器組成一個整體共同提供服務,所謂伸縮性就是指通過不斷向集群中加入服務器的手段來應對不斷上升的用戶并發(fā)訪問壓力和不斷增長的數(shù)據(jù)存儲需求,對于應用服務器集群,只要服務器上不存儲數(shù)據(jù),所有的服務器都是對等的,通過使用合適的負載均衡設(shè)備就可以向集群中不斷加入新的服務器。
 
對于緩存服務器而言,加入新的服務器可能會導致緩存路由失效,從而導致大部分的緩存數(shù)據(jù)都無法訪問,需要改進緩存路由算法來保證緩存數(shù)據(jù)可訪問,關(guān)系數(shù)據(jù)庫雖然支持數(shù)據(jù)復制,主從熱備份等機制,但是很難實現(xiàn)大規(guī)模集群的可伸縮性。
 
1.4 可擴展性
 
網(wǎng)站的擴展性直接關(guān)系到網(wǎng)站功能模塊的開發(fā),網(wǎng)站快速發(fā)展,功能也不斷的增加,網(wǎng)站架構(gòu)的可擴展性的主要目的是使其能夠快速的應對需求變化,是為了能夠在增加新業(yè)務時,盡量實現(xiàn)對現(xiàn)有產(chǎn)品無影響,不需要改動或是改動很少現(xiàn)有業(yè)務就能夠上線新產(chǎn)品;不同的產(chǎn)品業(yè)務之間的耦合度很小,一個產(chǎn)品或業(yè)務的改動不會對其他造成影響。
 
1.5 安全性
 
最后就是安全性了。互聯(lián)網(wǎng)是一個開放的平臺,任何人在任何地方都可以訪問網(wǎng)站。安全架構(gòu)就是保護網(wǎng)站不受惡意的訪問和攻擊,保護數(shù)據(jù)不被竊取。
 

免責聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認相關(guān)法律責任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費咨詢獲取折扣

Loading