(轉(zhuǎn))單體架構(gòu),SOA架構(gòu),微服務(wù)架構(gòu),分布式架構(gòu),集群架構(gòu)

單體架構(gòu)

什么是單體架構(gòu)

一個歸檔包(例如war格式或者Jar格式)包含了應(yīng)用所有功能的應(yīng)用程序检碗,我們通常稱之為單體應(yīng)用。架構(gòu)單體應(yīng)用的方法論疤估,我們稱之為單體應(yīng)用架構(gòu)思灌,這是一種比較傳統(tǒng)的架構(gòu)風(fēng)格。舌仍。

單體架構(gòu)示例圖

QQ截圖20180517151958.png

單體架構(gòu)的缺陷

1.復(fù)雜性高

整個項目包含的模塊非常多妒貌,模塊的邊界模糊,依賴關(guān)系不清晰铸豁,代碼質(zhì)量參差不齊,整個項目非常復(fù)雜灌曙。每次修改代碼都心驚膽戰(zhàn),甚至添加一個簡單的功能节芥,或者修改一個BUG都會造成隱含的缺陷在刺。

2.技術(shù)債務(wù)逐漸上升

隨著時間推移、需求變更和人員更迭头镊,會逐漸形成應(yīng)用程序的技術(shù)債務(wù)蚣驼,并且越積越多。已使用的系統(tǒng)設(shè)計或代碼難以修改相艇,因為應(yīng)用程序的其他模塊可能會以意料之外的方式使用它颖杏。

3.部署速度逐漸變慢

隨著代碼的增加,構(gòu)建和部署的時間也會增加坛芽。而在單體應(yīng)用中留储,每次功能的變更或缺陷的修復(fù)都會導(dǎo)致我們需要重新部署整個應(yīng)用。全量部署的方式耗時長咙轩、影響范圍大获讳、風(fēng)險高,這使得單體應(yīng)用項目上線部署的頻率較低活喊,從而又導(dǎo)致兩次發(fā)布之間會有大量功能變更和缺陷修復(fù)丐膝,出錯概率較高。

4.擴展能力受限,無法按需伸縮

單體應(yīng)用只能作為一個整體進行擴展尤误,無法結(jié)合業(yè)務(wù)模塊的特點進行伸縮侠畔。

5.阻礙技術(shù)創(chuàng)新

單體應(yīng)用往往使用統(tǒng)一的技術(shù)平臺或方案解決所有問題,團隊的每個成員都必須使用相同的開發(fā)語言和架構(gòu)损晤,想要引入新的框架或技術(shù)平臺非常困難软棺。

由于單體架構(gòu)的缺陷日益明顯,所以越來越多的公司采用微服務(wù)架構(gòu)范式解決上面提到的單體架構(gòu)中的問題尤勋。

不同于構(gòu)建單一喘落、龐大的應(yīng)用,微服務(wù)架構(gòu)將應(yīng)用拆分為一套小且互相關(guān)聯(lián)的服務(wù)最冰。

SOA架構(gòu)

SOA是Service-Oriented Architecture的英文縮寫瘦棋,就是面向服務(wù)的架構(gòu)。這里的服務(wù)可以理解為service層業(yè)務(wù)服務(wù)暖哨。

單一應(yīng)用架構(gòu)

當網(wǎng)站流量很小時赌朋,只需一個應(yīng)用,將所有功能都部署在一起篇裁,以減少部署節(jié)點和成本沛慢。

垂直應(yīng)用架構(gòu)

當訪問量逐漸增大,單一應(yīng)用增加機器帶來的加速度越來越小达布,將應(yīng)用拆成互不相干的幾個應(yīng)用团甲,以提升效率。

分布式服務(wù)架構(gòu)

當垂直應(yīng)用越來越多黍聂,應(yīng)用之間交互不可避免躺苦,將核心業(yè)務(wù)抽取出來,作為獨立的服務(wù)产还,逐漸形成穩(wěn)定的服務(wù)中心匹厘,使前端應(yīng)用能更快速的響應(yīng)多變的市場需求。

流動計算架構(gòu)

當服務(wù)越來越多雕沉,容量的評估集乔,小服務(wù)資源的浪費等問題逐漸顯現(xiàn),此時需增加一個調(diào)度中心基于訪問壓力實時管理集群容量坡椒,提高集群利用率。

此時尤溜,用于提高機器利用率的SOA服務(wù)治理方案是關(guān)鍵倔叼。

Dubbo就是SOA服務(wù)治理方案的核心框架。

總結(jié):dubbo不僅可以對服務(wù)進行治理宫莱,而且還可以對服務(wù)進行調(diào)用丈攒。

微服務(wù)架構(gòu)

什么是微服務(wù)架構(gòu)

簡而言之,微服務(wù)架構(gòu)風(fēng)格的開發(fā)方法,是以開發(fā)一組小型服務(wù)的方式來開發(fā)一個獨立的應(yīng)用系統(tǒng)的巡验。其中每個小型服務(wù)都運行在自己的進程中际插,并經(jīng)常采用HTTP資源API輕量的機制來相互通信。

這些服務(wù)圍繞業(yè)務(wù)功能進行構(gòu)建显设,并能通過全自動的部署機制來進行獨立部署框弛。這些微服務(wù)可以使用不同的語言來編寫,并且可以使用不同的數(shù)據(jù)存儲技術(shù)捕捂。對這些微服務(wù)我們僅做最低限度的集中管理瑟枫。

微服務(wù)架構(gòu)示例圖

QQ截圖20180517201613.png

微服務(wù)架構(gòu)的特性

每個微服務(wù)可獨立運行在自己的進程里

一系列獨立運行的微服務(wù)共同構(gòu)建起整個系統(tǒng)

每個服務(wù)為獨立的業(yè)務(wù)開發(fā),一個微服務(wù)只關(guān)注某個特定的功能指攒,如訂單管理慷妙、用戶管理等

微服務(wù)之間通過一些輕量的通信機制進行通信,如REST API接口進行調(diào)用

可以使用不同的語言與存儲技術(shù)

全自動的部署機制

微服務(wù)架構(gòu)的優(yōu)勢

1.易于開發(fā)和維護

一個微服務(wù)只關(guān)注一個特定的業(yè)務(wù)功能允悦,所以它的業(yè)務(wù)清晰膝擂、代碼量較少。開發(fā)和維護單個微服務(wù)相對比較簡單隙弛,整個應(yīng)用是由若干個微服務(wù)構(gòu)建而成架馋,所以整個應(yīng)用也會維持在可控狀態(tài);

2.單個微服務(wù)啟動較快

單個微服務(wù)代碼量較少驶鹉,所以啟動會比較快绩蜻;

3.局部修改容易部署

單體應(yīng)用只要有修改,就要重新部署整個應(yīng)用室埋,微服務(wù)解決了這樣的問題办绝。一般來說,對某個微服務(wù)進行修改姚淆,只需要重新部署這個服務(wù)即可孕蝉;

4.技術(shù)棧不受限

在微服務(wù)中,我們可以結(jié)合項目業(yè)務(wù)及團隊的特點腌逢,合理地選擇技術(shù)棧

5.按需伸縮

微服務(wù)架構(gòu)的挑戰(zhàn)

1.運維要求較高

更多的服務(wù)意味著更多的運維投入降淮。在單體架構(gòu)中只需要保證一個應(yīng)用的正常運行;而在微服務(wù)中搏讶,需要保證幾十甚至幾百個服務(wù)的正常運行與協(xié)作佳鳖,帶來了巨大的挑戰(zhàn);

2.分布式固有的復(fù)雜性

使用微服務(wù)構(gòu)建的是分布式系統(tǒng)媒惕。對于一個分布式系統(tǒng)系吩,系統(tǒng)容錯、網(wǎng)絡(luò)延遲妒蔚、分布式事務(wù)等都帶來了巨大的挑戰(zhàn)穿挨;

3.接口調(diào)整成本高

微服務(wù)之間通過接口進行通信月弛。如果修改某個微服務(wù)的API,可能所有使用了該接口的微服務(wù)都需要做調(diào)整科盛;

4.重復(fù)勞動

很多服務(wù)可能都會使用到相同的功能帽衙。而這個功能并沒有達到分解為一個微服務(wù)的程度,這個時候贞绵,可能各個服務(wù)都會開發(fā)這一功能厉萝,導(dǎo)致代碼重復(fù)。

微服務(wù)設(shè)計原則

單一職責原則

服務(wù)自治原則

輕量級通信原則

接口明確原則

微服務(wù)和SOA的區(qū)別

微服務(wù)架構(gòu)強調(diào)的第一個重點就是業(yè)務(wù)系統(tǒng)需要徹底的組件化和服務(wù)化

微服務(wù)不再強調(diào)傳統(tǒng)SOA架構(gòu)里面比較重的ESB企業(yè)服務(wù)總線但壮,同時SOA的思想進入到單個業(yè)務(wù)系統(tǒng)內(nèi)部實現(xiàn)真正的組件化冀泻。

分布式-微服務(wù)-集群的區(qū)別

分布式

QQ截圖20180517203448.png

service A、B蜡饵、C弹渔、D 分別是業(yè)務(wù)組件,通過API Geteway進行業(yè)務(wù)訪問溯祸。

將一個大的系統(tǒng)劃分為多個業(yè)務(wù)模塊肢专,業(yè)務(wù)模塊分別部署到不同的機器上,各個業(yè)務(wù)模塊之間通過接口進行數(shù)據(jù)交互焦辅。

區(qū)別分布式的方式是根據(jù)不同機器不同業(yè)務(wù)博杖。

注:分布式需要做好事務(wù)管理。

集群模式

QQ截圖20180517203458.png

集群模式是不同服務(wù)器部署同一套服務(wù)對外訪問筷登,實現(xiàn)服務(wù)的負載均衡剃根。

區(qū)別集群的方式是根據(jù)部署多臺服務(wù)器業(yè)務(wù)是否相同。

注:集群模式需要做好session共享前方,確保在不同服務(wù)器切換的過程中不會因為沒有獲取到session而中止退出服務(wù)狈醉。

一般配置Nginx*的負載容器實現(xiàn):靜態(tài)資源緩存、Session共享可以附帶實現(xiàn)惠险,Nginx支持5000個并發(fā)量苗傅。

分布式是否屬于微服務(wù)?

答案是肯定的。微服務(wù)的意思也就是將模塊拆分成一個獨立的服務(wù)單元通過接口來實現(xiàn)數(shù)據(jù)的交互班巩。

微服務(wù)架構(gòu)

微服務(wù)的設(shè)計是為了不因為某個模塊的升級和BUG影響現(xiàn)有的系統(tǒng)業(yè)務(wù)渣慕。

微服務(wù)與分布式的細微差別是,微服務(wù)的應(yīng)用不一定是分散在多個服務(wù)器上抱慌,他也可以是同一個服務(wù)器逊桦。

作者:意識流丶

鏈接:http://www.reibang.com/p/92ca0bfbd52f

來源:簡書

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)抑进,非商業(yè)轉(zhuǎn)載請注明出處卫袒。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市单匣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖户秤,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件码秉,死亡現(xiàn)場離奇詭異,居然都是意外死亡鸡号,警方通過查閱死者的電腦和手機转砖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鲸伴,“玉大人府蔗,你說我怎么就攤上這事」埃” “怎么了姓赤?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長仲吏。 經(jīng)常有香客問我不铆,道長,這世上最難降的妖魔是什么裹唆? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任誓斥,我火速辦了婚禮,結(jié)果婚禮上许帐,老公的妹妹穿的比我還像新娘劳坑。我一直安慰自己,他們只是感情好成畦,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布距芬。 她就那樣靜靜地躺著,像睡著了一般羡鸥。 火紅的嫁衣襯著肌膚如雪蔑穴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天惧浴,我揣著相機與錄音存和,去河邊找鬼。 笑死衷旅,一個胖子當著我的面吹牛捐腿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柿顶,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼茄袖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嘁锯?” 一聲冷哼從身側(cè)響起宪祥,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤聂薪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蝗羊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體藏澳,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年耀找,在試婚紗的時候發(fā)現(xiàn)自己被綠了翔悠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡野芒,死狀恐怖蓄愁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情狞悲,我是刑警寧澤撮抓,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站效诅,受9級特大地震影響胀滚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜乱投,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一咽笼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧戚炫,春花似錦剑刑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至茅糜,卻和暖如春七芭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蔑赘。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工狸驳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缩赛。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓耙箍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酥馍。 傳聞我的和親對象是個殘疾皇子辩昆,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355