微服務(wù)架構(gòu)的設(shè)計(jì)模式 轉(zhuǎn)

前不久,Java Code Geeks發(fā)表了一篇文章猎莲,分析單體應(yīng)用與微服務(wù)的優(yōu)缺點(diǎn)绍弟。近日,該網(wǎng)站又發(fā)表了一篇文章著洼,提供了六種微服務(wù)架構(gòu)的設(shè)計(jì)模式樟遣。

1. 聚合器微服務(wù)設(shè)計(jì)模式

這是一種最常用也最簡單的設(shè)計(jì)模式而叼,如下圖所示:

聚合器調(diào)用多個(gè)服務(wù)實(shí)現(xiàn)應(yīng)用程序所需的功能。它可以是一個(gè)簡單的Web頁面豹悬,將檢索到的數(shù)據(jù)進(jìn)行處理展示葵陵。它也可以是一個(gè)更高層次的組合微服務(wù),對檢索到的數(shù)據(jù)增加業(yè)務(wù)邏輯后進(jìn)一步發(fā)布成一個(gè)新的微服務(wù)瞻佛,這符合DRY原則脱篙。另外,每個(gè)服務(wù)都有自己的緩存和數(shù)據(jù)庫伤柄。如果聚合器是一個(gè)組合服務(wù)绊困,那么它也有自己的緩存和數(shù)據(jù)庫。聚合器可以沿X軸和Z軸獨(dú)立擴(kuò)展响迂。

2. 代理微服務(wù)設(shè)計(jì)模式

這是聚合器模式的一個(gè)變種考抄,如下圖所示:

在這種情況下,客戶端并不聚合數(shù)據(jù)蔗彤,但會(huì)根據(jù)業(yè)務(wù)需求的差別調(diào)用不同的微服務(wù)川梅。代理可以僅僅委派請求,也可以進(jìn)行數(shù)據(jù)轉(zhuǎn)換工作

3. 鏈?zhǔn)轿⒎?wù)設(shè)計(jì)模式

這種模式在接收到請求后會(huì)產(chǎn)生一個(gè)經(jīng)過合并的響應(yīng)然遏,如下圖所示:

在這種情況下贫途,服務(wù)A接收到請求后會(huì)與服務(wù)B進(jìn)行通信,類似地待侵,服務(wù)B會(huì)同服務(wù)C進(jìn)行通信丢早。所有服務(wù)都使用同步消息傳遞。在整個(gè)鏈?zhǔn)秸{(diào)用完成之前秧倾,客戶端會(huì)一直阻塞怨酝。因此,服務(wù)調(diào)用鏈不宜過長那先,以免客戶端長時(shí)間等待农猬。

4. 分支微服務(wù)設(shè)計(jì)模式

這種模式是聚合器模式的擴(kuò)展,允許同時(shí)調(diào)用兩個(gè)微服務(wù)鏈售淡,如下圖所示:

5. 數(shù)據(jù)共享微服務(wù)設(shè)計(jì)模式

自治是微服務(wù)的設(shè)計(jì)原則之一斤葱,就是說微服務(wù)是全棧式服務(wù)。但在重構(gòu)現(xiàn)有的“單體應(yīng)用(monolithic application)”時(shí)揖闸,SQL數(shù)據(jù)庫反規(guī)范化可能會(huì)導(dǎo)致數(shù)據(jù)重復(fù)和不一致揍堕。因此,在單體應(yīng)用到微服務(wù)架構(gòu)的過渡階段汤纸,可以使用這種設(shè)計(jì)模式衩茸,如下圖所示:

在這種情況下,部分微服務(wù)可能會(huì)共享緩存和數(shù)據(jù)庫存儲蹲嚣。不過递瑰,這只有在兩個(gè)服務(wù)之間存在強(qiáng)耦合關(guān)系時(shí)才可以祟牲。對于基于微服務(wù)的新建應(yīng)用程序而言,這是一種反模式抖部。

6. 異步消息傳遞微服務(wù)設(shè)計(jì)模式

雖然REST設(shè)計(jì)模式非常流行说贝,但它是同步的,會(huì)造成阻塞慎颗。因此部分基于微服務(wù)的架構(gòu)可能會(huì)選擇使用消息隊(duì)列代替REST請求/響應(yīng)乡恕,如下圖所示:

作者:weiweicsdn

鏈接:http://www.reibang.com/p/47c2ff7c6f98

來源:簡書

簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處俯萎。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末傲宜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子夫啊,更是在濱河造成了極大的恐慌函卒,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撇眯,死亡現(xiàn)場離奇詭異报嵌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)熊榛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門锚国,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人玄坦,你說我怎么就攤上這事血筑。” “怎么了煎楣?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵豺总,是天一觀的道長。 經(jīng)常有香客問我择懂,道長园欣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任休蟹,我火速辦了婚禮,結(jié)果婚禮上日矫,老公的妹妹穿的比我還像新娘赂弓。我一直安慰自己,他們只是感情好哪轿,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布盈魁。 她就那樣靜靜地躺著,像睡著了一般窃诉。 火紅的嫁衣襯著肌膚如雪杨耙。 梳的紋絲不亂的頭發(fā)上赤套,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機(jī)與錄音珊膜,去河邊找鬼容握。 笑死,一個(gè)胖子當(dāng)著我的面吹牛车柠,可吹牛的內(nèi)容都是我干的剔氏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼竹祷,長吁一口氣:“原來是場噩夢啊……” “哼谈跛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起塑陵,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤感憾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后令花,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阻桅,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年彭则,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鳍刷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡俯抖,死狀恐怖输瓜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情芬萍,我是刑警寧澤尤揣,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站柬祠,受9級特大地震影響北戏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜漫蛔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一嗜愈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧莽龟,春花似錦蠕嫁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春赘阀,著一層夾襖步出監(jiān)牢的瞬間益缠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工基公, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留幅慌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓酌媒,卻偏偏與公主長得像欠痴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子秒咨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359

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

  • 前不久喇辽,Java Code Geeks發(fā)表了一篇文章,分析單體應(yīng)用與微服務(wù)的優(yōu)缺點(diǎn)雨席。近日菩咨,該網(wǎng)站又發(fā)表了一篇文章,...
    weiweicsdn閱讀 1,165評論 0 6
  • 微服務(wù)架構(gòu)需要考慮的問題 API Gateway 服務(wù)間調(diào)用 服務(wù)發(fā)現(xiàn) 服務(wù)容錯(cuò) 服務(wù)部署 數(shù)據(jù)調(diào)用 聚合器微服務(wù)...
    Java機(jī)械師閱讀 7,639評論 0 1
  • 聚合器微服務(wù)設(shè)計(jì)模式 這是一種最常用也最簡單的設(shè)計(jì)模式陡厘,如下圖所示: 聚合器調(diào)用多個(gè)服務(wù)實(shí)現(xiàn)應(yīng)用程序所需的功能抽米。它...
    wyatt_plus閱讀 3,531評論 0 3
  • 微服務(wù)架構(gòu)需要考慮的問題 API Gateway 服務(wù)間調(diào)用 服務(wù)發(fā)現(xiàn) 服務(wù)容錯(cuò) 服務(wù)部署 數(shù)據(jù)調(diào)用 聚合器微服務(wù)...
    isuntong閱讀 126評論 0 1
  • 學(xué)習(xí)完整課程請移步 互聯(lián)網(wǎng) Java 全棧工程師 本節(jié)視頻 【視頻】再談微服務(wù)-微服務(wù)架構(gòu)設(shè)計(jì)模式 微服務(wù)架構(gòu)需要...
    擼帝閱讀 6,191評論 0 75