中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Dapr微服務的原理是什么

發布時間:2022-01-18 10:05:27 來源:億速云 閱讀:405 作者:柒染 欄目:大數據

這篇文章將為大家詳細講解有關Dapr微服務的原理是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。


Dapr是什么

Dapr(Distributed Application Runtime),是微軟Azure內部創新孵化團隊的一個開源項目,皆在解決微服務應用開發過程的一些共性問題。以官方文檔的說法,Dapr是一個可移植、事件驅動的運行時,讓企業開發者更容易利用各種語言和框架構建柔性、無狀態和有狀態的微服務應用,并運行在云端和邊緣。

Dapr的核心由Go語言寫成,開發團隊一開始有計劃使用.NET Core/C#來寫,但是考慮到社區的接受程度,遂最終選定Go作為開發語言。當然,還是可以使用任何語言和框架來編寫Dapr的擴展功能。由于Dapr要解決的問題確實是大家面臨的一些痛點,并且Dapr的設計也獨樹一幟,所以一經開源,就成為GitHub上Star增長最快的開源項目之一,甚至達到5K Star的速率超過了Kubernetes。

Dapr微服務的原理是什么  
 

Dapr包含什么

Dapr做的事情很簡單,就是利用Sidecar的模式,把代碼中的一些橫切關注點需求(Cross-cutting)分離和抽象出來,從而達到運行環境的獨立對外部依賴(包括服務之間)的獨立

這種獨立的途徑就是使用開放協議(HTTP和gRPC)來代替依賴特定協議。如下圖所示:

Dapr微服務的原理是什么  

從上圖我們可以看到,使用Dapr開發的微服務應用理論上可以部署到任意的云提供商、邊緣設備、虛擬機、Service Fabric集群、Kubernetes集群里面。

并且在如下方面(稱之為Building Block)進行外部依賴的抽象:

<ul class=">
  • 服務之間的調用:不用操心服務注冊和發現的問題,也不用操心重試等問題
  • 狀態的存儲:通過鍵值對來存儲應用邏輯的狀態,讓無狀態服務變為有狀態服務
  • 事件的發布訂閱:微服務之間除了直接的遠程調用外,更多是依賴事件驅動的模式去產生關系,這里對事件發布訂閱進行了統一
  • 外部資源的綁定:當需要把事件發布到微服務應用外部,或者從外部接收事件的時候,就可以使用資源綁定
  • Actors模式:通過Actors的模式,讓微服務可以以單線程的代碼實現大規模并行處理。實際上,Actors這部分功能的開發人員就是來自于Service Fabric團隊,兩者的API也基本保持一致。通過這樣的模式,也把Actors這種模式引入到了其他運行平臺
  • 可觀測性:Dapr會幫助微服務應用發出基于W3C Trace Context標準和Open Telemetry規范的度量、日志、跟蹤信息,方便對應用進行調試、診斷和監控
  • 密鑰管理:為微服務提供密鑰管理的能力,從而從依賴的外部密鑰管理服務中獨立出來。

下圖很好的展示了以上獨立抽象的能力是如何通過Sidecar模式實現的:

(Sidecar進程模式)Dapr微服務的原理是什么

(Sidecar容器模式)

雖然Dapr暴露的所有能力都是基于開放協議HTTP和gRPC的,但是為了方便大家快速開發,目前還是提供了如下語言平臺的SDK:

  • C++ SDK
  • Go SDK
  • Java SDK,可以和Spring Boot集成
  • Javascript SDK,可以和Express集成
  • Python SDK,可以和Flask集成
  • .NET SDK,可以和ASP.NET Core集成

同時,Dapr還可以和微軟開源的FaaS開發框架Azure Functions進行集成,Dapr開發團隊也基于Azure Logic App的邊緣運行時版本為微服務應用提供了Workflows的能力

 

為什么要用Dapr

根據InfoQ的架構和設計技術趨勢報告(https://www.infoq.com/articles/architecture-trends-2020/),微服務已經成為軟件開發的主流。但是要開發微服務應用,大部分開發人員還是面臨諸多挑戰。根本原因在于我們更熟悉經典的3層架構,而對微服務這種分布式應用的開發經驗會顯得相對不足,很難應對分布式應用所要求的伸縮性、靈活性、可維護性等云原生的特點。

Dapr通過把一些構建微服務應用所需的最佳實踐內置到開放、獨立的Building Block中,讓開發人員更加專注于業務邏輯代碼的編寫,即可開發出功能強大的微服務應用。

更為重要的是,Dapr還抽象了運行環境,避免微服務應用和運行環境強綁定(這也是很多團隊“假上云”——僅使用VM的原因之一)。并且支撐Dapr的運行環境不僅僅限于Cloud,還有廣闊的Edge。

毫無疑問,Dapr獲得了很多用戶的青睞,官網上提到的Geek+使用Dapr構建了倉儲機器人的解決方案,Willow使用Dapr構建了智能鐵路管理系統。也還有很多大型企業正在采用Dapr來構建他們的微服務應用,甚至國內某互聯網巨頭不僅計劃采用還積極參與了Dapr社區的貢獻。

關于Dapr微服務的原理是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

措美县| 阜宁县| 龙胜| 红安县| 郁南县| 白朗县| 阿克苏市| 刚察县| 峨眉山市| 绥阳县| 安远县| 和顺县| 手游| 临朐县| 连云港市| 桐梓县| 斗六市| 明溪县| 六盘水市| 陵水| 突泉县| 黑河市| 建昌县| 青岛市| 郁南县| 鱼台县| 巩义市| 全南县| 绍兴县| 二连浩特市| 雷山县| 崇左市| 海安县| 高尔夫| 拉萨市| 乐昌市| 南陵县| 绵阳市| 合肥市| 水富县| 涡阳县|