Dapr 的 gRPC組件(又叫可插拔組件)的提案

Dapr 在1.9 版本中的提案,計劃在 Dapr Runtime 中組件採用 外部 gRPC 組件: //github.com/dapr/dapr/issues/3787 ,針對這個 gRPC組件 有一個 具體實現方面的 提案//github.com/dapr/dapr/issues/4925 。 昨天剛批准了其中的 PR //github.com/dapr/dapr/pull/5102 的合併。 從這個提案的實現 可以很好的解決2022年9月3日 Dapr 中文社區舉辦的 Dapr 開發者日 在圓桌討論環節 幾位嘉賓所擔心的 Dapr 的後續發展問題,這意味著我們可以使用各種語言來擴展Dapr 了。

下面我們一起來看一看這個完成 狀態存儲可插拔組件 PR //github.com/dapr/dapr/pull/5102  的內容,首先其中提到了當前已經有3個參考實現程式碼庫:

  1. .NET: //github.com/mcandeia/DaprPluggableComponentSDK.NET/tree/fix/service-lifecycle
  2. Java: //github.com/tmacam/DaprPluggableComponent-Java
  3. Go: //github.com/mcandeia/dapr-components-go-sdk 

您所需要的只是一個應用程式,它偵聽默認的特定於組件的unix domain socket,該應用程式響應Dapr 在狀態存儲服務中定義的gRPC調用。Dapr 將為一組語言提供 SDK(可能從 .NET、Java 和 Go 開始),可插入組件的實現將與在compontents-contrib執行的操作幾乎相同,幾乎沒有細微差別。

性能是 .NET 和 gRPC 的一個重要特性,而 .NET 6/7 比以往任何時候都快,下面這張圖是來自 .NET 5 中的 gRPC 性能改進 。這是一個節省資金、減少能耗和構建更環保的雲原生應用程式的機會, 我們可以採用.NET 來擴展Dapr 了。

image

Tags: