您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)微軟微服務(wù)架構(gòu)eShopOnContainers的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
一、介紹
eShopOnContainers是基于微服務(wù)架構(gòu)和Docker容器的一個(gè)簡(jiǎn)單的.Net Core的應(yīng)用。目前微服務(wù)架構(gòu)如火如荼,docker技術(shù)也發(fā)展迅速,微軟在這時(shí)推出這個(gè)Demo,其用意可想而知,雖說(shuō)這個(gè)Demo還不能完全應(yīng)用到生產(chǎn)環(huán)境,但對(duì)于我們開(kāi)發(fā)者來(lái)說(shuō),可是非常好的學(xué)習(xí)資料,無(wú)論你是稍作修改還是利用架構(gòu)重新開(kāi)發(fā),學(xué)習(xí)這樣一個(gè)Demo都是非常有必要的,這讓我想起以前學(xué)習(xí)BlogEngine.Net。
二、架構(gòu)
我們看下微軟提供給我們的架構(gòu)圖
從左到右我們看到有2個(gè)虛線框,左邊是各個(gè)客戶端應(yīng)用,右邊是假設(shè)在Docker上的web應(yīng)用、微服務(wù)應(yīng)用和數(shù)據(jù)庫(kù)。
在Demo中,微軟根據(jù)不同功能分別搭建了多個(gè)service,而且在設(shè)計(jì)這幾個(gè)service的時(shí)候,微軟又使用了不同的方式來(lái)實(shí)現(xiàn),如下圖所示:
以上是微軟在Demo中展示的四種services,你還可以使用不同的框架,不同的數(shù)據(jù)庫(kù)完成你的微服務(wù)搭建,這就是微服務(wù)為何如此流行的原因了。我可以利用任何語(yǔ)言,任何數(shù)據(jù)庫(kù)都能搭建我的服務(wù),無(wú)論我的調(diào)用端使用的何種語(yǔ)言,何種系統(tǒng)。
三、源代碼
這套架構(gòu)在Github上開(kāi)源,地址:https://github.com/dotnet-architecture/eShopOnContainers
我們可以通過(guò)git把源代碼clone下來(lái):
我們看到里面有3個(gè)sln,建議用vs2017打開(kāi),如果你安裝了完整版,你可以打開(kāi)eShopOnContainers.sln,不過(guò)一般對(duì)于初學(xué)者來(lái)說(shuō),我們還是打開(kāi)eShopOnContainers-ServicesAndWebApps.sln解決方案。
可以看到在解決方案中已經(jīng)涵蓋了webapp和service app,我們的教程也是以這個(gè)solution為準(zhǔn)。
四、必要環(huán)境:
之前說(shuō)過(guò)我們的應(yīng)用是跨平臺(tái)的,可以運(yùn)行在任何支持Docker的操作系統(tǒng)之上,但在我們開(kāi)發(fā)調(diào)試的時(shí)候,我們需要相應(yīng)的環(huán)境才能進(jìn)行調(diào)試(當(dāng)然你也可以使用iisexpress進(jìn)行調(diào)試)
1、64bit Windows 10 Pro
2、開(kāi)啟Hyper-V(微軟的虛擬機(jī))
3、安裝Docker for Windows
如果我們是win10之前的版本,我們雖然可以安裝Docker Toolbox,但是沒(méi)辦法利用VS2017進(jìn)行Docker調(diào)試,運(yùn)行時(shí)會(huì)報(bào)錯(cuò),為了這教程,我決定把我電腦升級(jí)到Win10,這樣才能更好的展示。
如果你想在之前的系統(tǒng)下進(jìn)行調(diào)試運(yùn)行,除了安裝Docker Toolbox外,您還需要安裝:
1、NodeJS
2、Bower
Docker for Windows 在win10或者server 2016上有2種類(lèi)型的容器,Linux container 和Windows Container,這里我們只需要使用Linux Container即可(默認(rèn))。我們的教程只針對(duì)Services和WebApp,微軟建議設(shè)置Docker的使用內(nèi)存是4096M(4G)和CPU 3,如果你要運(yùn)行完整版(包含手機(jī)客戶端),那你需要為Dockere配置16G內(nèi)存。
我個(gè)人建議的話,你最好有臺(tái)專(zhuān)門(mén)放數(shù)據(jù)庫(kù)的機(jī)器,否則一個(gè)mssql-linux-sql docker都需要4G內(nèi)存,不用說(shuō)還需要搭建一個(gè)redis。
我們?cè)趯W(xué)習(xí)的時(shí)候,我們不一定要使用Docker進(jìn)行調(diào)試,利用iis express也可以,用哪種方式不重要,重要的是學(xué)習(xí)。
五、學(xué)習(xí)步驟:
本系列講解的都是以ServicesAndWebApps.sln代碼為準(zhǔn),我們將先從微服務(wù)學(xué)習(xí),再看web部分的代碼結(jié)構(gòu)。大致的順序如下:
1、Identity service
2、Catalog Service
3、Ordering Sevice
4、Basket Service
5、WebApp Mvc
6、WebSPA
寫(xiě)在最后:
前段時(shí)間比較忙,但一直非常關(guān)注.Net Core的發(fā)展,在之前的builder大會(huì)上,2.0的驚艷亮相,徹底讓我相信微軟會(huì)不惜余力的發(fā)展.Net,也使我等.Net Developer感覺(jué)到春天到了,至此為天下所有.Net Developer致敬,我們等了10年啊。
為什么挑這個(gè)架構(gòu)來(lái)說(shuō)呢,因?yàn)檫@是微軟寫(xiě)的,很有教學(xué)意義,而且現(xiàn)在微服務(wù)和Docker概念越來(lái)越火,目前的公司是基于服務(wù)做的(還沒(méi)有到達(dá)微服務(wù)概念),在部署、開(kāi)發(fā)、維護(hù)、擴(kuò)展上都有很多不便,所以這個(gè)學(xué)習(xí)對(duì)我來(lái)說(shuō)非常重要。
第一篇比較偏廢話些,后面會(huì)圍繞代碼和架構(gòu)和設(shè)計(jì)模式進(jìn)行講解,歡迎大家訂閱。最后來(lái)一張效果圖
關(guān)于“微軟微服務(wù)架構(gòu)eShopOnContainers的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。