詳述可擴(kuò)展架構(gòu)設(shè)計(jì)的三個(gè)維度_第1頁(yè)
詳述可擴(kuò)展架構(gòu)設(shè)計(jì)的三個(gè)維度_第2頁(yè)
詳述可擴(kuò)展架構(gòu)設(shè)計(jì)的三個(gè)維度_第3頁(yè)
詳述可擴(kuò)展架構(gòu)設(shè)計(jì)的三個(gè)維度_第4頁(yè)
詳述可擴(kuò)展架構(gòu)設(shè)計(jì)的三個(gè)維度_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

詳述可擴(kuò)展架構(gòu)設(shè)計(jì)的三個(gè)維度業(yè)界對(duì)于可擴(kuò)展的系統(tǒng)架構(gòu)設(shè)計(jì)有一個(gè)樸素的理念,就是:“通過(guò)加機(jī)器就可以解決容量和可用性問(wèn)題”。這一理念在“云計(jì)算”概念瘋狂流行的今天,得到了廣泛的認(rèn)可!對(duì)于一個(gè)規(guī)模迅速增長(zhǎng)的系統(tǒng)而言,容量和性能問(wèn)題當(dāng)然是首當(dāng)其沖的。但是隨著時(shí)間的向前,系統(tǒng)規(guī)模的增長(zhǎng),除了面對(duì)性能與容量的問(wèn)題外,還需要面對(duì)功能與模塊數(shù)量上的增長(zhǎng)帶來(lái)的系統(tǒng)復(fù)雜性問(wèn)題以及業(yè)務(wù)的變化帶來(lái)的提供差異化服務(wù)問(wèn)題。而許多系統(tǒng),在架構(gòu)設(shè)計(jì)時(shí)并未充分考慮到這些問(wèn)題,導(dǎo)致系統(tǒng)的重構(gòu)成為常態(tài),從而影響業(yè)務(wù)交付能力,還浪費(fèi)人力財(cái)力!對(duì)此,《可擴(kuò)展的藝術(shù)》一書(shū)提出了一個(gè)更加系統(tǒng)的可擴(kuò)展模型——KF可擴(kuò)展立方(ScalabilityCube)。這個(gè)立方體中沿著三個(gè)坐標(biāo)軸設(shè)置分別為:X、Y、Z。X軸擴(kuò)展一一關(guān)注水平的數(shù)據(jù)和服務(wù)克隆,也就是前文提到的“加機(jī)器解決問(wèn)題”Y軸擴(kuò)展一一關(guān)注應(yīng)用中職責(zé)的劃分,比如數(shù)據(jù)類(lèi)型,交易執(zhí)行類(lèi)型的劃分Z軸擴(kuò)展一一關(guān)注服務(wù)和數(shù)據(jù)的優(yōu)先級(jí)劃分,如分地域劃分整個(gè)擴(kuò)展模型,用下圖來(lái)表示,其中原點(diǎn)代表完全無(wú)擴(kuò)展的狀態(tài)。一.X軸擴(kuò)展X軸擴(kuò)展與我們前面樸素理念是一致的,通過(guò)絕對(duì)平等地復(fù)制服務(wù)與數(shù)據(jù),以解決容量和可用性的問(wèn)題。我們以生產(chǎn)汽車(chē)的工廠(chǎng)來(lái)舉例:假設(shè)一個(gè)車(chē)間能完整的生產(chǎn)一輛汽車(chē),為了短時(shí)間內(nèi)生產(chǎn)更多的汽車(chē),我們可以建設(shè)更多的車(chē)間,任何新增車(chē)間除了工作的效率可能不同之外,都是一個(gè)新的復(fù)制品,也能提供與原來(lái)車(chē)間相同的工作,生產(chǎn)出完整的汽車(chē)。給復(fù)制品分配工作就是一個(gè)X軸擴(kuò)展的一個(gè)完美示例,說(shuō)明了X軸擴(kuò)展的思路,即把工作無(wú)偏向的分配給復(fù)制品,每個(gè)復(fù)制品在不考慮生產(chǎn)效率的情況下,誰(shuí)來(lái)做這項(xiàng)工作是無(wú)偏向的,各個(gè)復(fù)制品之間不共享任何內(nèi)容。而在工程技術(shù)上來(lái)講,X軸擴(kuò)展主要有以下兩種技術(shù)方案:1.負(fù)載均衡故名思議,負(fù)載均衡就是將用戶(hù)的訪(fǎng)問(wèn)請(qǐng)求通過(guò)負(fù)載均衡器,均衡分配到由各個(gè)“復(fù)制品”組成的集群中去。當(dāng)某個(gè)復(fù)制品出現(xiàn)故障,也能輕易地將相應(yīng)“工作”轉(zhuǎn)移給其它的復(fù)制品來(lái)“代為完成”。這中間涉及到的工程技術(shù)點(diǎn)包括了反向代理,DNS輪詢(xún),哈希負(fù)載均衡算法(一致性哈希),動(dòng)態(tài)節(jié)點(diǎn)負(fù)載均衡(如按CPU,I/O)等。它的難點(diǎn)在于要求集群中的“復(fù)制品”是不共享任何內(nèi)容,也就是我們常說(shuō)的無(wú)狀態(tài)。2.數(shù)據(jù)復(fù)制數(shù)據(jù)復(fù)制是指在數(shù)據(jù)存儲(chǔ)層進(jìn)行絕對(duì)平等地?cái)?shù)據(jù)遷移,用于解決存儲(chǔ)層I/O瓶頸以及可用性上的問(wèn)題。由于存在多個(gè)復(fù)制品存儲(chǔ),為了使得每個(gè)復(fù)制品提供無(wú)差異的數(shù)據(jù)服務(wù),我們需要在復(fù)制品之間同步或異步地復(fù)制數(shù)據(jù)。數(shù)據(jù)復(fù)制的方式包括了主從同步(常見(jiàn)的讀/寫(xiě)分離),雙主同步等。因?yàn)閿?shù)據(jù)存儲(chǔ)天生就是有狀態(tài)的,數(shù)據(jù)復(fù)制的難點(diǎn)在于一致性的保證上,為了一致性的保證,從而也衍生了很多復(fù)雜的技術(shù),比如Paxos選舉算法等。二.Y軸擴(kuò)展Y軸擴(kuò)展表示的是根據(jù)數(shù)據(jù)的類(lèi)型或者交易執(zhí)行的類(lèi)型(或者兩者都有)來(lái)劃分工作職責(zé)。一般稱(chēng)為面向服務(wù)或面向資源的擴(kuò)展。我們?cè)僖陨a(chǎn)汽車(chē)的工廠(chǎng)來(lái)舉例:如亨利.福特所做的一樣,將汽車(chē)制造的工序按專(zhuān)業(yè)性分成不同車(chē)間和流水線(xiàn),不再是一個(gè)車(chē)間負(fù)責(zé)完成100%的任務(wù),制造一輛完整的汽車(chē),而是讓這每個(gè)車(chē)間都執(zhí)行一些子任務(wù),如安裝發(fā)動(dòng)機(jī),噴漆,安裝玻璃等等。這樣的分工,益處是明顯的,每個(gè)車(chē)間負(fù)責(zé)的任務(wù)更簡(jiǎn)單,從而能更專(zhuān)業(yè)更高效的完成生產(chǎn)。與汽車(chē)工廠(chǎng)的分工類(lèi)似,為了降低系統(tǒng)復(fù)雜度,Y軸擴(kuò)展會(huì)將龐大的整體應(yīng)用拆分為一組服務(wù)。每個(gè)服務(wù)實(shí)現(xiàn)一組相關(guān)的功能,如訂單管理、客戶(hù)管理等。在工程上常見(jiàn)的方案是服務(wù)化架構(gòu)(SOA)。比如對(duì)于一個(gè)電子商務(wù)平臺(tái),我們可以拆分成不同的服務(wù),組成下面這樣的架構(gòu):

PC川戶(hù)端登眾毬動(dòng)端用戶(hù)餐錄移動(dòng)端用「購(gòu)買(mǎi)PCffi戶(hù)購(gòu)買(mǎi)汀單管理眼務(wù)商品評(píng)論服務(wù)用戶(hù)登PC川戶(hù)端登眾毬動(dòng)端用戶(hù)餐錄移動(dòng)端用「購(gòu)買(mǎi)PCffi戶(hù)購(gòu)買(mǎi)汀單管理眼務(wù)商品評(píng)論服務(wù)用戶(hù)登錄服務(wù)客戶(hù)管理眼務(wù)齒品冃錄服務(wù)但通過(guò)觀(guān)察上圖容易發(fā)現(xiàn),當(dāng)服務(wù)數(shù)量增多時(shí),服務(wù)調(diào)用關(guān)系變得復(fù)雜。為系統(tǒng)添加一個(gè)新功能,要調(diào)用的服務(wù)數(shù)也變得不可控,由此引發(fā)了服務(wù)管理上的混亂。所以,一般情況下,需要采用服務(wù)注冊(cè)的機(jī)制形成服務(wù)網(wǎng)關(guān)來(lái)進(jìn)行服務(wù)治理。系統(tǒng)的架構(gòu)將變成下圖所示:商品目錄服等PCH1H端寮錄移動(dòng)端川戶(hù)餐錄PC用戶(hù)幽買(mǎi)移動(dòng)端用〃幽買(mǎi)服務(wù)網(wǎng)艾商品目錄服等PCH1H端寮錄移動(dòng)端川戶(hù)餐錄PC用戶(hù)幽買(mǎi)移動(dòng)端用〃幽買(mǎi)服務(wù)網(wǎng)艾用門(mén)登泉服務(wù)訂單供理眼務(wù)商品評(píng)論服務(wù)客戶(hù)管理服務(wù)同時(shí),為了提升單個(gè)服務(wù)的可用性和容量,對(duì)每一個(gè)服務(wù)進(jìn)行X軸擴(kuò)展劃分。PC川戶(hù)端豐錄移動(dòng)端川戶(hù)佯錄訂單皆理服命訂單汗理服務(wù)訂|卩管理眼并霽戶(hù)雅理服齊客戶(hù)管理服勢(shì)徉戶(hù)管加応P(guān)C川戶(hù)端豐錄移動(dòng)端川戶(hù)佯錄訂單皆理服命訂單汗理服務(wù)訂|卩管理眼并霽戶(hù)雅理服齊客戶(hù)管理服勢(shì)徉戶(hù)管加応用戶(hù)登錄厳務(wù)用門(mén)住卡服務(wù)用戶(hù)董錄服務(wù)商品目殺服務(wù)商品目錄服務(wù)商品目錄I蠱務(wù)訂單箭理服.務(wù)訂單筲理服務(wù)汀單?麗[服蕃三?Z軸擴(kuò)展Z軸擴(kuò)展通常是指基于請(qǐng)求者或用戶(hù)獨(dú)特的需求,進(jìn)行系統(tǒng)劃分,并使得劃分出來(lái)的子系統(tǒng)是相互隔離但又是完整的。繼續(xù)以生產(chǎn)汽車(chē)的工廠(chǎng)來(lái)舉例:福特公司為了發(fā)展在中國(guó)的業(yè)務(wù),或者利用中國(guó)的廉價(jià)勞動(dòng)力,在中國(guó)建立一個(gè)完整的子工廠(chǎng),與美國(guó)工廠(chǎng)一樣,負(fù)責(zé)完整的汽車(chē)生產(chǎn)。這就是一種Z軸擴(kuò)展。對(duì)于系統(tǒng)而言,Z軸擴(kuò)展一般是為了滿(mǎn)足差異性的需求或者是為了安全隔離而采取的擴(kuò)展措施。比如為了提供VIP用戶(hù)服務(wù),可以將系統(tǒng)完整地復(fù)制一份出來(lái),與普通用戶(hù)所使用的系統(tǒng)完全隔離開(kāi)來(lái);再如,針對(duì)不同的地域用戶(hù),系統(tǒng)自動(dòng)切換到對(duì)應(yīng)地域的子系統(tǒng),為用戶(hù)提供服務(wù),都可以認(rèn)為是Z軸擴(kuò)展。同時(shí),在系統(tǒng)的灰度部署上,我們也通常使用Z軸擴(kuò)展來(lái)完成。工程領(lǐng)域常見(jiàn)的Z軸擴(kuò)展有以下兩種方案:1?單元化架構(gòu)在分布式服務(wù)設(shè)計(jì)領(lǐng)域,一個(gè)單元(Cell)就是滿(mǎn)足某個(gè)分區(qū)所有業(yè)務(wù)操作的自包含閉環(huán)。如上面我們說(shuō)到的Y軸擴(kuò)展的SOA架構(gòu),客戶(hù)端對(duì)服務(wù)端節(jié)點(diǎn)的選擇一般是隨機(jī)的,但是,如果在此加上Z軸擴(kuò)展,那服務(wù)節(jié)點(diǎn)的選擇將不再是隨機(jī)的了,而是每個(gè)單元自成一體。如下圖:用門(mén)衽錄服務(wù)商品[【囲眼齊客i管理服芳訂單隋理服務(wù)用戶(hù)登錄服務(wù)衙品冃錄服勢(shì)客戶(hù)管理服務(wù)訂卩汁理眼務(wù)商品評(píng)論服務(wù)用門(mén)衽錄服務(wù)商品[【囲眼齊客i管理服芳訂單隋理服務(wù)用戶(hù)登錄服務(wù)衙品冃錄服勢(shì)客戶(hù)管理服務(wù)訂卩汁理眼務(wù)商品評(píng)論服務(wù)PC用戶(hù)移動(dòng)端用口2.數(shù)據(jù)分區(qū)為了性能數(shù)據(jù)安全上的考慮,我們將一個(gè)完整的數(shù)據(jù)集按一定的維度劃分出不同的子集。一個(gè)分區(qū)(Shard),就是是整體數(shù)據(jù)集的一個(gè)子集。比如用尾號(hào)來(lái)劃分用戶(hù),那同樣尾號(hào)的那部分用戶(hù)就可以認(rèn)為是一個(gè)分區(qū)。數(shù)據(jù)分區(qū)為一般包括以下幾種數(shù)據(jù)劃分的方式:數(shù)據(jù)類(lèi)型(如:業(yè)務(wù)類(lèi)型)數(shù)據(jù)范圍(如:時(shí)間段,用戶(hù)ID)數(shù)據(jù)熱度(如:用戶(hù)活躍度,商品熱度)按讀寫(xiě)分(如:商品描述,商品庫(kù)存)當(dāng)然,數(shù)據(jù)分區(qū)也是有代價(jià)的,它將增加數(shù)據(jù)運(yùn)維的難度,關(guān)聯(lián)搜索的復(fù)雜度增加等??偨Y(jié):一個(gè)在可擴(kuò)展性上設(shè)計(jì)良好的系統(tǒng),會(huì)充分考慮三個(gè)維度上的可擴(kuò)展性。X軸上擴(kuò)展處理的是平臺(tái)或系統(tǒng)執(zhí)行的交易量或工作量增長(zhǎng),雖然X軸擴(kuò)展能夠很好處理交易量的增長(zhǎng),但當(dāng)系統(tǒng)復(fù)雜度的大幅度增加,或用戶(hù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論