將想法與焦點(diǎn)和您一起共享

典型的分布式網(wǎng)站架構發(fā)布者:本站     時(shí)間:2019-03-27 20:03:57

分布式架構與傳統的單機架構最大的區別在于分布式架構能解決兩個(gè)方向的擴展問(wèn)題:一是橫向擴展,二是縱向擴展。
 
橫向擴展,主要用來(lái)解決應用架構上的容量問(wèn)題。由于單臺服務(wù)器能支撐的服務(wù)能力始終是有限的,所以我們在架構上就必須做到能夠支持橫向服務(wù)能力的擴展。最典型的橫向擴展是Web/API接人層,它在支持1億PV和10億PV時(shí)所需要的服務(wù)器數量必然是完全不一樣的,因此要考慮當服務(wù)器不夠用時(shí),它也能支撐PV的無(wú)限增長(cháng)。因此這兩層~般都屬 于無(wú)狀態(tài)的服務(wù)。


 
縱向擴展,主要解決業(yè)務(wù)的擴展問(wèn)題。當業(yè)務(wù)不斷擴展時(shí),業(yè)務(wù)邏輯的復雜度也會(huì )不斷上升,所以在架構上要能根據功能的劃分進(jìn)行縱向層次的劃分。例如,Web/API層只做頁(yè)面邏輯或者展示數據的封裝,服務(wù)層做業(yè)務(wù)邏輯的封裝等。業(yè)務(wù)邏輯層還可以劃分成更多的層次,以支持更細的業(yè)務(wù)的組合。
 
一個(gè)典型的分布式網(wǎng)站架構。它將用戶(hù)的請求通過(guò)負載均衡隨機分配給一臺Web機器,Web機器再通過(guò)遠程調用請求服務(wù)層。但是數據層一般都是有狀態(tài)的,而數據要做到分布式化,就必須保證數據的一致性。要保證數據的一一致性,一般都需要對最細粒度的數據做單寫(xiě)控制,因此要記錄數據的狀態(tài)、做好數據的訪(fǎng)問(wèn)控制等。
 
一個(gè)有狀態(tài)的分布式架構。分布式集群中-一般都有一個(gè)Master負責管理集群中所有機器的狀態(tài)和數據訪(fǎng)問(wèn)的規制等,為了保證高可用Master也有備份,Master通常會(huì )把訪(fǎng)問(wèn)的路由規則推給實(shí)際的請求發(fā)起端,這樣Client就可以直接和實(shí)際要訪(fǎng)問(wèn)的節點(diǎn)通信了,避免中間再經(jīng)過(guò)一層代理。
 
還有一種分布式架構是非Master-Slave模式而是Leader 選舉機制,即分布式集群中沒(méi)有單獨的Master角色,每個(gè)節點(diǎn)功能都是一樣的,但是在集群的初始化時(shí)會(huì )選取一個(gè)Leader承擔Master的功能。一旦該Leader失效,集群會(huì )重新選擇一個(gè)Leader。這種方式的好處是不用單獨考慮Master的節點(diǎn)的可用性,但是也會(huì )增加集群維護的復雜度。
 
(1)需要分布式中間件
 
從前面典型的分布式架構上可以看出,要搭建一個(gè)分布式應用系統必須要有支持分布式架構的框架。例如首先要有一個(gè)統一的負載均衡系統( LB/LVS )幫助平均分配外部請求的流量,將這些流量分配到后端的多臺機器上,這類(lèi)設備一般都是工作在第四層,只做鏈路選擇而不做應用層解析;應用層的負載均衡可以通過(guò)HA來(lái)實(shí)現,例如可以根據請求的URL或者用戶(hù)的Cookie精準地調度流量。
 
請求到達服務(wù)層,就需要解決服務(wù)之間的系統調用了。這時(shí),需要在服務(wù)層構建一個(gè)典型的分布式系統,包括同步調度的分布式RPC框架、異步調度的分布式消息框架和解決靜態(tài)配置信息的分布式配置框架。這三個(gè)分布式框架就像人體的骨骼和經(jīng)絡(luò ),把整個(gè)服務(wù)層連接起來(lái)。我們會(huì )在后面詳細介紹這三個(gè)典型的分布式框架(分布式框架的開(kāi)源產(chǎn)品有很多,例如Dubbo、RocketMQ等)。
 
請求到達數據層。數據層需要解決以下問(wèn)題:第一,屏蔽不同數據庫的差異性,使底層數據庫的切換不影響上次應用代碼;第二,屏蔽應用層代碼對數據分布的感知,使對數據的分區或者分片不會(huì )影響應用代碼的編寫(xiě)。由于般來(lái)說(shuō)數據層都是有狀態(tài)的,所以用數據層解決分布式問(wèn)題會(huì )更復雜、難度也更大。開(kāi)源的DRDS等都是用于解決這類(lèi)問(wèn)題的。
 
(2)服務(wù)化和分布式化
 
我們在網(wǎng)站升級中一般會(huì )接觸到兩個(gè)概念:一是服務(wù)化改造;二是分布式化改造。那么它們是一回事嗎?
 
服務(wù)化改造更多是從業(yè)務(wù)架構的角度出發(fā),目的是將業(yè)務(wù)做更細粒度的功能拆分,使業(yè)務(wù)邏輯更加清晰、邊界更加清楚且易于維護;服務(wù)化的另一個(gè)好處是收斂業(yè)務(wù)邏輯,通過(guò)接口標準化提供統一-的訪(fǎng)問(wèn)方式。 分布式化更多是從網(wǎng)站制作系統架構層面的角度出發(fā),更多是看請求的訪(fǎng)問(wèn)路徑,即一個(gè)請求必須先訪(fǎng)問(wèn)什么再訪(fǎng)問(wèn)什么、一次訪(fǎng)問(wèn)要經(jīng)過(guò)哪些步驟才能最終有結果等...因此,這是兩個(gè)不同層面的工作。



選擇我們,優(yōu)質(zhì)服務(wù),不容錯過(guò)
1. 優(yōu)秀的網(wǎng)絡(luò )資源,強大的網(wǎng)站優(yōu)化技術(shù),穩定的網(wǎng)站和速度保證
2. 15年上海網(wǎng)站建設經(jīng)驗,優(yōu)秀的技術(shù)和設計水平,更放心
3. 全程省心服務(wù),不必擔心自己不懂網(wǎng)絡(luò ),更省心。
------------------------------------------------------------
24小時(shí)聯(lián)系電話(huà):021-58370032
最新国产精品第二页_色资源av中文无码先锋_中国xx爽69护士_日韩欧美亚洲每日更新在线观看