從三個(gè)維度擴(kuò)展軟件架構(gòu)

翻譯自: http://microservices.io/articles/scalecube.html
轉(zhuǎn)載聲明: 請(qǐng)注明原文地址和該譯文出處厢蒜。
注意: 若有翻譯不當(dāng)之處,請(qǐng)指明脚囊。共同進(jìn)步。


有一本書(shū)桐磁,名字是 《The Art of Scalability》悔耘,其展示了一個(gè)模型(The scale cube, 立方體擴(kuò)展模型)描述了一個(gè)非常有用的 可從三個(gè)維度來(lái)進(jìn)展擴(kuò)展軟件架構(gòu).


在此模型中,把一個(gè)應(yīng)用服務(wù) 部署/克隆 多份 以達(dá)到負(fù)載均衡 這個(gè)稱之為 X軸擴(kuò)展我擂。其它兩種擴(kuò)展方式 為 Y軸擴(kuò)展和Z軸擴(kuò)展衬以。 ?我們所說(shuō)的 微服務(wù)架構(gòu)是基于 Y軸擴(kuò)展方式的固逗。 下面來(lái)詳細(xì)聊下 這三種擴(kuò)展方式令漂。


X軸擴(kuò)展
這種擴(kuò)展方式是由運(yùn)行多個(gè)相同的一個(gè)應(yīng)用以此來(lái)實(shí)現(xiàn)負(fù)載均衡。如果有 N個(gè)相同的應(yīng)用部署,那么每個(gè)單獨(dú)的應(yīng)用只需要處理 ?1/N 份的負(fù)載請(qǐng)求角溃。 這是一種簡(jiǎn)單的蚌本,普遍的一種擴(kuò)展方式囱持。

這種擴(kuò)展方式也有一個(gè)缺點(diǎn)那就是每一個(gè)單獨(dú)的應(yīng)用服務(wù)都有可能訪問(wèn)所有的數(shù)據(jù)冬耿,所以內(nèi)存中不得不緩存更多的數(shù)據(jù)來(lái)高效的響應(yīng)。另外一個(gè)缺點(diǎn)就是 當(dāng)開(kāi)發(fā)需求或是開(kāi)發(fā)所導(dǎo)致的問(wèn)題越來(lái)越多時(shí)或是應(yīng)用本身的復(fù)雜性提高時(shí) 所帶來(lái)的管理及運(yùn)維挑戰(zhàn).


Y軸擴(kuò)展
不同于X軸與Z軸 是由多個(gè)同時(shí)運(yùn)行的相同應(yīng)用服務(wù)組成冯勉。 Y軸擴(kuò)展則是盡可能的拆分一個(gè)單獨(dú)的應(yīng)用 成 多個(gè)不同的服務(wù)澈蚌。每個(gè)不同的服務(wù)則負(fù)責(zé)一個(gè)到多個(gè)相近的功能模塊。
目前有很多種方式來(lái)進(jìn)行拆分一個(gè)應(yīng)用為多個(gè)不同的服務(wù)灼狰。 其中一個(gè)方法就是 基于動(dòng)詞 的拆分方式來(lái)定義服務(wù)是如何實(shí)現(xiàn)一個(gè) 用戶用例宛瞄, 比如在電商網(wǎng)站中 ?“買(mǎi)單” 這樣一個(gè)動(dòng)作可以單獨(dú)開(kāi)發(fā)一個(gè)服務(wù)與之對(duì)應(yīng)。 ?那么理所當(dāng)然還有另外一種拆分的方法就是 ?基于名詞 的交胚。
再比如說(shuō)在電商網(wǎng)站中的 “歷史訂單管理”份汗。

當(dāng)然一個(gè)應(yīng)用本身可能也需要兩種拆分方式組合起來(lái)。


Z軸擴(kuò)展
這種擴(kuò)展方式類似于X軸蝴簇,都是在多個(gè)服務(wù)器上運(yùn)行一段相同的代碼杯活。它們最大的不同是Z軸擴(kuò)展上的每個(gè)服務(wù)器僅僅 擁有/負(fù)責(zé) ?一部分?jǐn)?shù)據(jù)。 一些系統(tǒng)組件可以做到 分發(fā)/路由 每一個(gè)請(qǐng)求到相對(duì)應(yīng)的服務(wù)器數(shù)據(jù)集中熬词。 一個(gè)普遍使用的 分發(fā)/路由 規(guī)則就是基于 包含在請(qǐng)求屬性當(dāng)中的 “對(duì)像的主鍵值”旁钧, 另外一個(gè)則是基于發(fā)送請(qǐng)求的不同的用戶類型。 舉個(gè)栗子荡澎,一個(gè)應(yīng)用服務(wù)可以提供更高的存儲(chǔ)容量給 付費(fèi)用戶均践, 對(duì)免費(fèi)用戶則是相對(duì)應(yīng)的少一些晤锹。

Z軸的拆分通常就是針對(duì)數(shù)據(jù)庫(kù)的擴(kuò)展摩幔。 數(shù)據(jù)根據(jù)一定的特征被分區(qū)在不同的分區(qū)服務(wù)器上。再舉個(gè)栗子鞭铆, 我們可以根據(jù)日期來(lái)拆分相同的數(shù)據(jù)或衡。需要注意的是X軸擴(kuò)展方式下的每個(gè)分區(qū)數(shù)據(jù)可能需要被部署到一個(gè)或多個(gè)復(fù)本服務(wù)器上。
Z軸擴(kuò)展同樣也可以用到對(duì)應(yīng)用程序的拆分上车遂,栗子封断, 一個(gè)搜索服務(wù)可能涉及多個(gè)分區(qū)服務(wù)器上的數(shù)據(jù), 這時(shí)需要有一個(gè)路由程序發(fā)送搜索請(qǐng)求到索引并且存儲(chǔ)相應(yīng)數(shù)據(jù)的相應(yīng)分區(qū)服務(wù)器上舶担。 同時(shí)也需要一個(gè) 查詢聚合器將每個(gè)分區(qū)返回的數(shù)據(jù)合并起來(lái)坡疼。

Z軸擴(kuò)展有幾個(gè)優(yōu)點(diǎn):
1) 每個(gè)分區(qū)服務(wù)器只處理一部分?jǐn)?shù)據(jù)
2) 改善緩存的使用率并減少內(nèi)存使用和IO操作
3) 同時(shí)改善了事務(wù)處理的擴(kuò)展性, 因?yàn)椴煌瑪?shù)據(jù)的請(qǐng)求已經(jīng)被分發(fā)到不同的服務(wù)器上.
4) 同樣也易于故障隔離, 因?yàn)橐粋€(gè)故障只僅僅影響一部分?jǐn)?shù)據(jù)的訪問(wèn), 不是所有.

幾個(gè)缺點(diǎn):
1) 增加了軟件的復(fù)雜度
2) 需要實(shí)現(xiàn)數(shù)據(jù)分區(qū)方案, 特別是某種情況下我們有可能需要對(duì)數(shù)據(jù)進(jìn)行 ?重新分區(qū).
3) 如果軟件的復(fù)雜度提升, Z軸擴(kuò)展方式不能很好的處理. 這時(shí)需要用到的就是Y軸的擴(kuò)展方式.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市衣陶,隨后出現(xiàn)的幾起案子柄瑰,更是在濱河造成了極大的恐慌闸氮,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件教沾,死亡現(xiàn)場(chǎng)離奇詭異蒲跨,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)授翻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)或悲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人堪唐,你說(shuō)我怎么就攤上這事巡语。” “怎么了羔杨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵捌臊,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我兜材,道長(zhǎng)理澎,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任曙寡,我火速辦了婚禮糠爬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘举庶。我一直安慰自己执隧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布户侥。 她就那樣靜靜地躺著镀琉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蕊唐。 梳的紋絲不亂的頭發(fā)上屋摔,一...
    開(kāi)封第一講書(shū)人閱讀 52,394評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音替梨,去河邊找鬼钓试。 笑死,一個(gè)胖子當(dāng)著我的面吹牛副瀑,可吹牛的內(nèi)容都是我干的弓熏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼糠睡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼挽鞠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤信认,失蹤者是張志新(化名)和其女友劉穎串稀,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體狮杨,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡母截,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了橄教。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片清寇。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖护蝶,靈堂內(nèi)的尸體忽然破棺而出华烟,到底是詐尸還是另有隱情,我是刑警寧澤持灰,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布盔夜,位于F島的核電站,受9級(jí)特大地震影響堤魁,放射性物質(zhì)發(fā)生泄漏喂链。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一妥泉、第九天 我趴在偏房一處隱蔽的房頂上張望椭微。 院中可真熱鬧,春花似錦盲链、人聲如沸蝇率。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)本慕。三九已至,卻和暖如春侧漓,著一層夾襖步出監(jiān)牢的瞬間锅尘,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工火架, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鉴象,地道東北人忙菠。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓何鸡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親牛欢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子骡男,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容