這篇文章將為大家詳細(xì)講解有關(guān)Dapr微服務(wù)的原理是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
為峨邊彝族等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及峨邊彝族網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、峨邊彝族網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
Dapr(Distributed Application Runtime),是微軟Azure內(nèi)部創(chuàng)新孵化團(tuán)隊(duì)的一個(gè)開源項(xiàng)目,皆在解決微服務(wù)應(yīng)用開發(fā)過程的一些共性問題。以官方文檔的說法,Dapr是一個(gè)可移植、事件驅(qū)動的運(yùn)行時(shí),讓企業(yè)開發(fā)者更容易利用各種語言和框架構(gòu)建柔性、無狀態(tài)和有狀態(tài)的微服務(wù)應(yīng)用,并運(yùn)行在云端和邊緣。
Dapr的核心由Go語言寫成,開發(fā)團(tuán)隊(duì)一開始有計(jì)劃使用.NET Core/C#來寫,但是考慮到社區(qū)的接受程度,遂最終選定Go作為開發(fā)語言。當(dāng)然,還是可以使用任何語言和框架來編寫Dapr的擴(kuò)展功能。由于Dapr要解決的問題確實(shí)是大家面臨的一些痛點(diǎn),并且Dapr的設(shè)計(jì)也獨(dú)樹一幟,所以一經(jīng)開源,就成為GitHub上Star增長最快的開源項(xiàng)目之一,甚至達(dá)到5K Star的速率超過了Kubernetes。
Dapr做的事情很簡單,就是利用Sidecar的模式,把代碼中的一些橫切關(guān)注點(diǎn)需求(Cross-cutting)分離和抽象出來,從而達(dá)到運(yùn)行環(huán)境的獨(dú)立和對外部依賴(包括服務(wù)之間)的獨(dú)立。
這種獨(dú)立的途徑就是使用開放協(xié)議(HTTP和gRPC)來代替依賴特定協(xié)議。如下圖所示:
從上圖我們可以看到,使用Dapr開發(fā)的微服務(wù)應(yīng)用理論上可以部署到任意的云提供商、邊緣設(shè)備、虛擬機(jī)、Service Fabric集群、Kubernetes集群里面。
并且在如下方面(稱之為Building Block)進(jìn)行外部依賴的抽象:
(Sidecar容器模式)
雖然Dapr暴露的所有能力都是基于開放協(xié)議HTTP和gRPC的,但是為了方便大家快速開發(fā),目前還是提供了如下語言平臺的SDK:
同時(shí),Dapr還可以和微軟開源的FaaS開發(fā)框架Azure Functions進(jìn)行集成,Dapr開發(fā)團(tuán)隊(duì)也基于Azure Logic App的邊緣運(yùn)行時(shí)版本為微服務(wù)應(yīng)用提供了Workflows的能力
根據(jù)InfoQ的架構(gòu)和設(shè)計(jì)技術(shù)趨勢報(bào)告(https://www.infoq.com/articles/architecture-trends-2020/),微服務(wù)已經(jīng)成為軟件開發(fā)的主流。但是要開發(fā)微服務(wù)應(yīng)用,大部分開發(fā)人員還是面臨諸多挑戰(zhàn)。根本原因在于我們更熟悉經(jīng)典的3層架構(gòu),而對微服務(wù)這種分布式應(yīng)用的開發(fā)經(jīng)驗(yàn)會顯得相對不足,很難應(yīng)對分布式應(yīng)用所要求的伸縮性、靈活性、可維護(hù)性等云原生的特點(diǎn)。
Dapr通過把一些構(gòu)建微服務(wù)應(yīng)用所需的最佳實(shí)踐內(nèi)置到開放、獨(dú)立的Building Block中,讓開發(fā)人員更加專注于業(yè)務(wù)邏輯代碼的編寫,即可開發(fā)出功能強(qiáng)大的微服務(wù)應(yīng)用。
更為重要的是,Dapr還抽象了運(yùn)行環(huán)境,避免微服務(wù)應(yīng)用和運(yùn)行環(huán)境強(qiáng)綁定(這也是很多團(tuán)隊(duì)“假上云”——僅使用VM的原因之一)。并且支撐Dapr的運(yùn)行環(huán)境不僅僅限于Cloud,還有廣闊的Edge。
毫無疑問,Dapr獲得了很多用戶的青睞,官網(wǎng)上提到的Geek+使用Dapr構(gòu)建了倉儲機(jī)器人的解決方案,Willow使用Dapr構(gòu)建了智能鐵路管理系統(tǒng)。也還有很多大型企業(yè)正在采用Dapr來構(gòu)建他們的微服務(wù)應(yīng)用,甚至國內(nèi)某互聯(lián)網(wǎng)巨頭不僅計(jì)劃采用還積極參與了Dapr社區(qū)的貢獻(xiàn)。
關(guān)于Dapr微服務(wù)的原理是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。