摘要:微服務(wù)是一種特殊的分布式。隨著流量的增多,瓶頸出現(xiàn),應(yīng)用程序需要更快,數(shù)據(jù)庫服務(wù)器要更大內(nèi)存緩存和硬盤,文件服務(wù)器要更大硬盤,便將三個(gè)功能分離到各自服務(wù)器。除了緩存外仍有大量數(shù)據(jù)直接訪問數(shù)據(jù)庫服務(wù)器,這時(shí)便采用讀寫分離。
最近學(xué)習(xí)了分布式與微服務(wù)的相關(guān)知識(shí),由于本人也是初步接觸沒什么實(shí)際的經(jīng)驗(yàn)最初也是被一大堆概念搞的云里霧里。 這兩天便好好看書,上網(wǎng)查資料,對(duì)這兩者總結(jié)了一番,希望能夠給正在學(xué)習(xí)的大家解決一些疑惑。
先說說分布式,分布式只是一種手段,把不同的機(jī)器分散在不同的地方,然后這些機(jī)器間相互協(xié)助完成業(yè)務(wù)。微服務(wù)是一種特殊的分布式。
所以我們應(yīng)該比較的是傳統(tǒng)單體應(yīng)用與微服務(wù)的區(qū)別。
先看看傳統(tǒng)單體應(yīng)用,下面看一張圖
這就是一個(gè)大型網(wǎng)站的架構(gòu)圖,我說說這個(gè)圖產(chǎn)生的步驟,詳細(xì)可看李智慧的大型網(wǎng)站架構(gòu)一書。
最開始一臺(tái)服務(wù)器上存儲(chǔ)著文件,數(shù)據(jù),應(yīng)用程序。隨著流量的增多,瓶頸出現(xiàn),應(yīng)用程序需要更快CPU,數(shù)據(jù)庫服務(wù)器要更大內(nèi)存(緩存)和硬盤,文件服務(wù)器要更大硬盤,便將三個(gè)功能分離到各自服務(wù)器。
為了提高速度,將常用數(shù)據(jù)放到緩存中,緩存又分本地緩存和分布式緩存。
緩解服務(wù)器壓力,采用集群,并通過負(fù)載均衡服務(wù)器調(diào)度不同的應(yīng)用服務(wù)器。
除了緩存外仍有大量數(shù)據(jù)直接訪問數(shù)據(jù)庫服務(wù)器,這時(shí)便采用讀寫分離。
使用CDN,反向代理加速網(wǎng)站響應(yīng),CDN可從距離自己最近的網(wǎng)絡(luò)提供商機(jī)房獲取數(shù)據(jù),如果反響代理中緩存著用戶請(qǐng)求的資源則直接返回給用戶。
分布式數(shù)據(jù)庫,是數(shù)據(jù)庫拆分的最后手段,按照不同業(yè)務(wù)拆分
業(yè)務(wù)越來越復(fù)雜采用分布式服務(wù),傳統(tǒng)的SOA架構(gòu)。
由于服務(wù)越來越多ESB服務(wù)總線維護(hù)起來越來越麻煩,微服務(wù)便由此發(fā)展而來!
由于業(yè)務(wù)間的邏輯越來越復(fù)雜,我們就不把這些業(yè)務(wù)全部雜糅在一起,每個(gè)業(yè)務(wù)都分開來做,這就是微服務(wù)。
優(yōu)點(diǎn):上面的單體系統(tǒng)全部運(yùn)行于一個(gè)進(jìn)程之內(nèi),資源相互影響,添加功能可能會(huì)影響其它功能,導(dǎo)致維護(hù)麻煩。 而微服務(wù)一切分為不同的模塊,運(yùn)行于自身進(jìn)程內(nèi),而且不同的服務(wù)可以使用不同的語言充分發(fā)揮優(yōu)勢。
缺點(diǎn):引入了分布式的復(fù)雜性,如接口一致性。 不過很多問題強(qiáng)大的Spring Cloud都已經(jīng)提供了解決方案!
下面給出一張Sping Cloud的組件架構(gòu)圖
未完。。。。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/11806.html
摘要:每個(gè)微服務(wù)提供一組,供其他微服務(wù)或者應(yīng)用客戶端所用。由于微服務(wù)架構(gòu)的分布式特點(diǎn),測試一個(gè)基于微服務(wù)架構(gòu)的應(yīng)用也是很復(fù)雜的任務(wù)。微服務(wù)架構(gòu)模式下,應(yīng)用的改變將會(huì)波及多個(gè)服務(wù)。 微服務(wù)Microservices已經(jīng)成為軟件架構(gòu)最流行的熱詞之一。網(wǎng)絡(luò)上看到很多關(guān)于微服務(wù)的文章,但是感覺很多離我們還很遙遠(yuǎn),并且沒有找到多少真正在企業(yè)場景中應(yīng)用的實(shí)例。此處省略一萬字~~~~于是想要將自己最近一段...
摘要:缺點(diǎn)系統(tǒng)依賴復(fù)雜,給開發(fā)測試部署帶來不便,分布式數(shù)據(jù)一致性和分布式事務(wù)支持困難,一般通過最終一致性簡化解決。微服務(wù)架構(gòu)分成三種實(shí)現(xiàn)模式。事件驅(qū)動(dòng)架構(gòu)事件是狀態(tài)發(fā)生變化時(shí),軟件發(fā)出的通知。事件驅(qū)動(dòng)架構(gòu)的四個(gè)部分事件隊(duì)列接收事件的入口。 架構(gòu)的規(guī)劃誰架構(gòu)就是對(duì)系統(tǒng)中的實(shí)體以及實(shí)體之間的關(guān)系所進(jìn)行的抽象描述,是決策。...
摘要:熔斷機(jī)制為了防止雪崩效應(yīng)事件的發(fā)生,分布式系統(tǒng)采用了熔斷機(jī)制。為了解決這一難題,微服務(wù)架構(gòu)引入了熔斷機(jī)制。由于微服務(wù)系統(tǒng)是分布式系統(tǒng),服務(wù)與服務(wù)之間沒有任何的禍合。 1.2.1 什么是微服務(wù) 按業(yè)務(wù)劃分為一個(gè)獨(dú)立運(yùn)行的程序,即服務(wù)單元。 服務(wù)之間通過 HTTP 協(xié)議相互通信。 自動(dòng)化部署。 可以用不同的編程語言。 可以用不同的存儲(chǔ)技術(shù)。 服務(wù)集中化管理。 微服務(wù)是一個(gè)分布式系統(tǒng)。 ...
摘要:什么是分布式系統(tǒng)從進(jìn)程角度看兩個(gè)程序分別運(yùn)行在兩臺(tái)主機(jī)的進(jìn)程上它們相互協(xié)作最終完成同一個(gè)服務(wù)那么理論上這兩個(gè)程序所組成的系統(tǒng)可以稱作分布式系統(tǒng)當(dāng)然這兩個(gè)程序可以是不同的程序可以是相同的程序如果是相同的程序我們又可以稱為集群所謂集群就是將相同 什么是分布式系統(tǒng) 從進(jìn)程角度看, 兩個(gè)程序分別運(yùn)行在兩臺(tái)主機(jī)的進(jìn)程上, 它們相互協(xié)作最終完成同一個(gè)服務(wù), 那么理論上這兩個(gè)程序所組成的系統(tǒng), 可以...
閱讀 657·2021-11-23 09:51
閱讀 3257·2021-10-11 10:58
閱讀 15407·2021-09-29 09:47
閱讀 3526·2021-09-01 11:42
閱讀 1281·2019-08-29 16:43
閱讀 1831·2019-08-29 15:37
閱讀 2088·2019-08-29 12:56
閱讀 1717·2019-08-28 18:21