自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳述可擴(kuò)展架構(gòu)設(shè)計(jì)的三個(gè)維度

云計(jì)算
業(yè)界對于可擴(kuò)展的系統(tǒng)架構(gòu)設(shè)計(jì)有一個(gè)樸素的理念,就是:“通過加機(jī)器就可以解決容量和可用性問題”。這一理念在“云計(jì)算”概念瘋狂流行的今天,得到了廣泛的認(rèn)可!

業(yè)界對于可擴(kuò)展的系統(tǒng)架構(gòu)設(shè)計(jì)有一個(gè)樸素的理念,就是:

“通過加機(jī)器就可以解決容量和可用性問題”。

這一理念在“云計(jì)算”概念瘋狂流行的今天,得到了廣泛的認(rèn)可!對于一個(gè)規(guī)模迅速增長的系統(tǒng)而言,容量和性能問題當(dāng)然是首當(dāng)其沖的。但是隨著時(shí)間的向前,系統(tǒng)規(guī)模的增長,除了面對性能與容量的問題外,還需要面對功能與模塊數(shù)量上的增長帶來的系統(tǒng)復(fù)雜性問題以及業(yè)務(wù)的變化帶來的提供差異化服務(wù)問題。而許多系統(tǒng),在架構(gòu)設(shè)計(jì)時(shí)并未充分考慮到這些問題,導(dǎo)致系統(tǒng)的重構(gòu)成為常態(tài),從而影響業(yè)務(wù)交付能力,還浪費(fèi)人力財(cái)力!

對此,《可擴(kuò)展的藝術(shù)》一書提出了一個(gè)更加系統(tǒng)的可擴(kuò)展模型——AKF可擴(kuò)展立方(Scalability Cube)。這個(gè)立方體中沿著三個(gè)坐標(biāo)軸設(shè)置分別為:X、Y、Z。

  • X軸擴(kuò)展 —— 關(guān)注水平的數(shù)據(jù)和服務(wù)克隆,也就是前文提到的“加機(jī)器解決問題”
  • Y軸擴(kuò)展 —— 關(guān)注應(yīng)用中職責(zé)的劃分,比如數(shù)據(jù)類型,交易執(zhí)行類型的劃分
  • Z軸擴(kuò)展 —— 關(guān)注服務(wù)和數(shù)據(jù)的優(yōu)先級劃分,如分地域劃分

整個(gè)擴(kuò)展模型,用下圖來表示,其中原點(diǎn)代表完全無擴(kuò)展的狀態(tài)。

一.X軸擴(kuò)展

X軸擴(kuò)展與我們前面樸素理念是一致的,通過絕對平等地復(fù)制服務(wù)與數(shù)據(jù),以解決容量和可用性的問題。我們以生產(chǎn)汽車的工廠來舉例:假設(shè)一個(gè)車間能完整的生產(chǎn)一輛汽車,為了短時(shí)間內(nèi)生產(chǎn)更多的汽車,我們可以建設(shè)更多的車間,任何新增車間除了工作的效率可能不同之外,都是一個(gè)新的復(fù)制品,也能提供與原來車間相同的工作,生產(chǎn)出完整的汽車。給復(fù)制品分配工作就是一個(gè)X軸擴(kuò)展的一個(gè)***示例,說明了X軸擴(kuò)展的思路,即把工作無偏向的分配給復(fù)制品,每個(gè)復(fù)制品在不考慮生產(chǎn)效率的情況下,誰來做這項(xiàng)工作是無偏向的,各個(gè)復(fù)制品之間不共享任何內(nèi)容。

而在工程技術(shù)上來講,X軸擴(kuò)展主要有以下兩種技術(shù)方案:

1.負(fù)載均衡

故名思議,負(fù)載均衡就是將用戶的訪問請求通過負(fù)載均衡器,均衡分配到由各個(gè)“復(fù)制品”組成的集群中去。當(dāng)某個(gè)復(fù)制品出現(xiàn)故障,也能輕易地將相應(yīng)“工作”轉(zhuǎn)移給其它的復(fù)制品來“代為完成”。這中間涉及到的工程技術(shù)點(diǎn)包括了反向代理,DNS輪詢,哈希負(fù)載均衡算法(一致性哈希),動態(tài)節(jié)點(diǎn)負(fù)載均衡(如按 CPU,I/O)等。它的難點(diǎn)在于要求集群中的“復(fù)制品”是不共享任何內(nèi)容,也就是我們常說的無狀態(tài)。

2.數(shù)據(jù)復(fù)制

數(shù)據(jù)復(fù)制是指在數(shù)據(jù)存儲層進(jìn)行絕對平等地?cái)?shù)據(jù)遷移,用于解決存儲層I/O瓶頸以及可用性上的問題。由于存在多個(gè)復(fù)制品存儲,為了使得每個(gè)復(fù)制品提供無差異的數(shù)據(jù)服務(wù),我們需要在復(fù)制品之間同步或異步地復(fù)制數(shù)據(jù)。數(shù)據(jù)復(fù)制的方式包括了主從同步(常見的讀/寫分離),雙主同步等。因?yàn)閿?shù)據(jù)存儲天生就是有狀態(tài)的,數(shù)據(jù)復(fù)制的難點(diǎn)在于一致性的保證上,為了一致性的保證,從而也衍生了很多復(fù)雜的技術(shù),比如Paxos選舉算法等。

#p#

二.Y軸擴(kuò)展

Y軸擴(kuò)展表示的是根據(jù)數(shù)據(jù)的類型或者交易執(zhí)行的類型(或者兩者都有)來劃分工作職責(zé)。一般稱為面向服務(wù)或面向資源的擴(kuò)展。我們再以生產(chǎn)汽車的工廠來舉例:如亨利.福特所做的一樣,將汽車制造的工序按專業(yè)性分成不同車間和流水線,不再是一個(gè)車間負(fù)責(zé)完成100%的任務(wù),制造一輛完整的汽車,而是讓這每個(gè)車間都執(zhí)行一些子任務(wù),如安裝發(fā)動機(jī),噴漆,安裝玻璃等等。這樣的分工,益處是明顯的,每個(gè)車間負(fù)責(zé)的任務(wù)更簡單,從而能更專業(yè)更高效的完成生產(chǎn)。

與汽車工廠的分工類似,為了降低系統(tǒng)復(fù)雜度,Y軸擴(kuò)展會將龐大的整體應(yīng)用拆分為一組服務(wù)。每個(gè)服務(wù)實(shí)現(xiàn)一組相關(guān)的功能,如訂單管理、客戶管理等。在工程上常見的方案是服務(wù)化架構(gòu)(SOA)。比如對于一個(gè)電子商務(wù)平臺,我們可以拆分成不同的服務(wù),組成下面這樣的架構(gòu):

但通過觀察上圖容易發(fā)現(xiàn),當(dāng)服務(wù)數(shù)量增多時(shí),服務(wù)調(diào)用關(guān)系變得復(fù)雜。為系統(tǒng)添加一個(gè)新功能,要調(diào)用的服務(wù)數(shù)也變得不可控,由此引發(fā)了服務(wù)管理上的混亂。所以,一般情況下,需要采用服務(wù)注冊的機(jī)制形成服務(wù)網(wǎng)關(guān)來進(jìn)行服務(wù)治理。系統(tǒng)的架構(gòu)將變成下圖所示:

同時(shí),為了提升單個(gè)服務(wù)的可用性和容量,對每一個(gè)服務(wù)進(jìn)行X軸擴(kuò)展劃分。

#p#

三.Z軸擴(kuò)展

Z軸擴(kuò)展通常是指基于請求者或用戶獨(dú)特的需求,進(jìn)行系統(tǒng)劃分,并使得劃分出來的子系統(tǒng)是相互隔離但又是完整的。繼續(xù)以生產(chǎn)汽車的工廠來舉例:福特公司為了發(fā)展在中國的業(yè)務(wù),或者利用中國的廉價(jià)勞動力,在中國建立一個(gè)完整的子工廠,與美國工廠一樣,負(fù)責(zé)完整的汽車生產(chǎn)。這就是一種Z軸擴(kuò)展。

對于系統(tǒng)而言,Z軸擴(kuò)展一般是為了滿足差異性的需求或者是為了安全隔離而采取的擴(kuò)展措施。比如為了提供VIP用戶服務(wù),可以將系統(tǒng)完整地復(fù)制一份出來,與普通用戶所使用的系統(tǒng)完全隔離開來;再如,針對不同的地域用戶,系統(tǒng)自動切換到對應(yīng)地域的子系統(tǒng),為用戶提供服務(wù),都可以認(rèn)為是Z軸擴(kuò)展。同時(shí),在系統(tǒng)的灰度部署上,我們也通常使用Z軸擴(kuò)展來完成。

工程領(lǐng)域常見的Z軸擴(kuò)展有以下兩種方案:

1.單元化架構(gòu)

在分布式服務(wù)設(shè)計(jì)領(lǐng)域,一個(gè)單元(Cell)就是滿足某個(gè)分區(qū)所有業(yè)務(wù)操作的自包含閉環(huán)。如上面我們說到的Y軸擴(kuò)展的SOA架構(gòu),客戶端對服務(wù)端節(jié)點(diǎn)的選擇一般是隨機(jī)的,但是,如果在此加上Z軸擴(kuò)展,那服務(wù)節(jié)點(diǎn)的選擇將不再是隨機(jī)的了,而是每個(gè)單元自成一體。如下圖:

 

2.數(shù)據(jù)分區(qū)

為了性能數(shù)據(jù)安全上的考慮,我們將一個(gè)完整的數(shù)據(jù)集按一定的維度劃分出不同的子集。 一個(gè)分區(qū)(Shard),就是是整體數(shù)據(jù)集的一個(gè)子集。比如用尾號來劃分用戶,那同樣尾號的那部分用戶就可以認(rèn)為是一個(gè)分區(qū)。數(shù)據(jù)分區(qū)為一般包括以下幾種數(shù)據(jù)劃分的方式:

數(shù)據(jù)類型(如:業(yè)務(wù)類型) 數(shù)據(jù)范圍(如:時(shí)間段,用戶ID) 數(shù)據(jù)熱度(如:用戶活躍度,商品熱度) 按讀寫分(如:商品描述,商品庫存)

當(dāng)然,數(shù)據(jù)分區(qū)也是有代價(jià)的,它將增加數(shù)據(jù)運(yùn)維的難度,關(guān)聯(lián)搜索的復(fù)雜度增加等。

總結(jié):

一個(gè)在可擴(kuò)展性上設(shè)計(jì)良好的系統(tǒng),會充分考慮三個(gè)維度上的可擴(kuò)展性。X軸上擴(kuò)展處理的是平臺或系統(tǒng)執(zhí)行的交易量或工作量增長,雖然X軸擴(kuò)展能夠很好處理交易量的增長,但當(dāng)系統(tǒng)復(fù)雜度的大幅度增加,或用戶數(shù)量增加以及差異化服務(wù)需求出現(xiàn),X軸擴(kuò)展就難以應(yīng)付了,如是我們可以通過Y軸擴(kuò)展來處理系統(tǒng)復(fù)雜度增長的問題以及Z軸擴(kuò)展來處理差異性化需求的問題。而當(dāng)采用的擴(kuò)展坐標(biāo)軸不止一條時(shí),那么X軸擴(kuò)展總是其它擴(kuò)展方法的次級劃分。同時(shí),這三個(gè)維度擴(kuò)展性,使得系統(tǒng)性能上改善有了更多的方向,對于系統(tǒng)性能優(yōu)化,也是至關(guān)重要。

責(zé)任編輯:Ophira 來源: ShareCore
相關(guān)推薦

2021-07-30 13:46:59

前端架構(gòu)插件

2011-07-15 16:26:09

架構(gòu)設(shè)計(jì)

2021-05-07 15:27:23

架構(gòu)設(shè)計(jì)架構(gòu)開發(fā)

2022-12-30 08:16:34

2011-11-09 13:46:51

可擴(kuò)展架構(gòu)

2009-07-02 17:39:46

Java未來

2015-05-18 09:50:23

swift擴(kuò)展

2021-09-01 13:37:16

物聯(lián)網(wǎng)可擴(kuò)展性IoT

2016-05-18 13:23:38

58同城架構(gòu)設(shè)計(jì)運(yùn)維

2017-11-15 08:56:00

供應(yīng)鏈消費(fèi)升級CIO

2011-05-13 09:13:34

博科虛擬化

2020-06-11 09:00:27

SDN網(wǎng)絡(luò)架構(gòu)網(wǎng)絡(luò)

2016-01-04 16:21:48

2024-11-20 13:18:21

2025-04-27 08:40:00

架構(gòu)后臺任務(wù)開發(fā)

2013-04-01 09:20:05

JavaScript

2018-01-26 14:22:31

程序員發(fā)展連接

2012-02-21 10:30:35

業(yè)務(wù)靈活性IT架構(gòu)

2020-07-13 10:20:01

人工智能技術(shù)IT

2024-02-20 09:25:28

架構(gòu)設(shè)計(jì)系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號