1單元化和微服務(wù)是兩種不同的架構(gòu)概念。
單元化是指將一個能夠完成所有業(yè)務(wù)操作的自包含集合作為部署的基本單位。這個集合包含了所有業(yè)務(wù)所需的服務(wù)和分配給該單元的數(shù)據(jù)。在單元化架構(gòu)中,多個單元被部署在不同的機(jī)房,每個機(jī)房內(nèi)的單元數(shù)量不固定。每個單元都部署了系統(tǒng)所需的全部應(yīng)用,而數(shù)據(jù)則按照某種維度劃分成部分?jǐn)?shù)據(jù)。單元化架構(gòu)通過業(yè)務(wù)流量的調(diào)配器來調(diào)整流量在各個單元之間的比例。
(資料圖)
傳統(tǒng)意義上的SOA(服務(wù)化)架構(gòu)中,服務(wù)是分層的,每層的節(jié)點數(shù)量不同。當(dāng)上層調(diào)用下層時,會隨機(jī)選擇節(jié)點。
而在單元化架構(gòu)下,服務(wù)仍然是分層的,但不同的是每一層中的節(jié)點都屬于且僅屬于某一個單元。當(dāng)上層調(diào)用下層時,只會選擇本單元內(nèi)的節(jié)點。
單元是一個完整的縮小版整站,包含了所有應(yīng)用,但只能操作部分?jǐn)?shù)據(jù)。單元化架構(gòu)可以輕松地在多個機(jī)房中部署,因為可以將多個單元部署在一個機(jī)房內(nèi),同時將其他單元部署在其他機(jī)房內(nèi)。
單元化架構(gòu)的要求之一是具備數(shù)據(jù)分區(qū)能力,即將全局?jǐn)?shù)據(jù)按照某種維度水平劃分為不重疊的分區(qū)。此外,全站所有業(yè)務(wù)數(shù)據(jù)的分區(qū)維度和規(guī)則必須一致。一個好的分區(qū)維度應(yīng)該具備適當(dāng)?shù)牧6群妥銐虻钠骄浴?/p>
邏輯單元是單元化架構(gòu)的基礎(chǔ),一個單元也被稱為一個Zone。根據(jù)業(yè)務(wù)特點,可以將系統(tǒng)部署在不同類型的邏輯單元中。
2何時使用單元化架構(gòu)?
在當(dāng)今數(shù)字化時代,大規(guī)模系統(tǒng)的功能和用戶分布已經(jīng)成為挑戰(zhàn)。為了應(yīng)對海量系統(tǒng)功能與用戶所在地域的強(qiáng)關(guān)聯(lián)性,滿足高可用要求最高的系統(tǒng),以及利用互聯(lián)網(wǎng)用戶的天然分布式優(yōu)勢,單元化架構(gòu)應(yīng)運(yùn)而生。本文將探討何時使用單元化架構(gòu),以實現(xiàn)異地多活和突破擴(kuò)展上限。
異地多活:滿足功能和用戶分布的需求
1.1 海量系統(tǒng)功能與用戶所在地域的強(qiáng)關(guān)聯(lián)性在外賣、物流和O2O等業(yè)務(wù)中,功能和用戶分布密切相關(guān)。單元化架構(gòu)通過將系統(tǒng)劃分為獨立的組件,使得這些組件可以根據(jù)不同地域的需求進(jìn)行部署,從而提供異地多活的能力。無論用戶身處何地,都能享受到高效的服務(wù)。
1.2 高可用要求最高的系統(tǒng)對于銀行、電信、證券等系統(tǒng)來說,宕機(jī)是絕對不能容忍的。單元化架構(gòu)通過在多地部署系統(tǒng)的不同單元,實現(xiàn)了高可用性。即使某個地區(qū)的數(shù)據(jù)中心發(fā)生故障,其他地區(qū)的單元依然可以提供服務(wù),確保系統(tǒng)持續(xù)穩(wěn)定運(yùn)行。
1.3 互聯(lián)網(wǎng)用戶的分布和極端氣候事件互聯(lián)網(wǎng)用戶的天然分布式是單元化架構(gòu)的優(yōu)勢之一。通過在多個數(shù)據(jù)中心部署系統(tǒng)單元,可以提高用戶的訪問速度和體驗。同時,單元化架構(gòu)還能預(yù)防極端氣候事件(如地震、颶風(fēng)、水災(zāi))對整個數(shù)據(jù)中心造成的災(zāi)難性影響,保證系統(tǒng)的穩(wěn)定性和可靠性。
突破擴(kuò)展上限:解放系統(tǒng)能力和用戶增長的限制
2.1 系統(tǒng)能力或用戶數(shù)達(dá)到單機(jī)房/單數(shù)據(jù)中心瓶頸隨著系統(tǒng)功能和用戶數(shù)的不斷增長,單機(jī)房或單數(shù)據(jù)中心的能力將逐漸成為瓶頸。單元化架構(gòu)通過將系統(tǒng)劃分為獨立的組件,并在多個機(jī)房部署這些組件,使系統(tǒng)能力得到突破,避免單點故障和性能瓶頸的影響。
2.2 多機(jī)房部署引起的跨機(jī)房調(diào)用性能降低盡管多機(jī)房部署可以提高系統(tǒng)的擴(kuò)展性,但跨機(jī)房調(diào)用往往伴隨著性能下降的問題。單元化架構(gòu)通過明確定義的接口和優(yōu)化調(diào)用方式,解決了跨機(jī)房調(diào)用性能降低的問題,確保系統(tǒng)在多機(jī)房環(huán)境下仍能提供高效的服務(wù)。
2.3 數(shù)據(jù)庫主庫單點和連接數(shù)限制數(shù)據(jù)庫主庫的單點問題和連接數(shù)限制是影響系統(tǒng)持續(xù)發(fā)展的瓶頸。單元化架構(gòu)通過引入數(shù)據(jù)庫分片和分布式架構(gòu),解決了主庫單點和連接數(shù)有限的問題,實現(xiàn)了數(shù)據(jù)庫的水平擴(kuò)展和高可用性,支持系統(tǒng)的持續(xù)發(fā)展。
2.4 單數(shù)據(jù)中心無法支撐用戶數(shù)量的增長對于像微信、支付寶、Google、Facebook、WhatsApp等擁有超過十億用戶的平臺來說,單個數(shù)據(jù)中心無法承載其快速增長的用戶數(shù)量。通過在多個數(shù)據(jù)中心部署系統(tǒng)單元,單元化架構(gòu)實現(xiàn)了用戶數(shù)量的水平擴(kuò)展,確保系統(tǒng)能夠滿足龐大用戶群體的需求。
總結(jié):單元化架構(gòu)是一種應(yīng)對異地多活和突破擴(kuò)展上限的有效解決方案。通過劃分系統(tǒng)為獨立的單元,并在不同地域進(jìn)行部署,單元化架構(gòu)可以滿足海量系統(tǒng)功能和用戶所在地域的強(qiáng)關(guān)聯(lián)性需求,提供高可用性,并充分利用互聯(lián)網(wǎng)用戶的分布優(yōu)勢。同時,單元化架構(gòu)可以突破單機(jī)房/單數(shù)據(jù)中心的擴(kuò)展限制,實現(xiàn)系統(tǒng)能力和用戶增長的無限可能性。對于追求高可用、彈性擴(kuò)展和持續(xù)發(fā)展的系統(tǒng)來說,單元化架構(gòu)是一個不可忽視的選擇。
標(biāo)簽: