Dapr v1.13 版本已發佈

Dapr是一套開源、可移植的事件驅動型運行時,允許開發人員輕鬆立足雲端與邊緣位置運行彈性、微服務、無狀態以及有狀態等應用程序類型。Dapr能夠確保開發人員專注於編寫業務邏輯,而不必分神於解決分佈式系統難題,由此顯著提高生產力並縮短開發時長。Dapr 是用於構建雲原生應用程序的開發人員框架,可以更輕鬆幫助開發人員在 Kubernetes 上構建運行多個微服務,並與外部狀態存儲/數據庫、機密存儲、發佈/訂閱代理以及其他雲服務和自託管解決方案進行交互。

2024年3月6日正式發佈了1.13版本,,Dapr v1.13 版本提供了幾項新功能,組件熱重載、Go和Javascript/Typescript SDK對工作流的支持、HTTP服務器的低指標基數、優雅關機,Rust SDK對Actor的支持等。

 

以下是 v1.13 版本的亮點:

組件熱重載

組件“熱重載”[3]是一種新的預覽功能,啓用後,可以自動拾取組件更新,而無需重新啓動 Dapr 進程。組件規範已協調,並在 Kubernetes 和自託管模式下運行時生效。

Go 和 JavaScript/TypeScript SDK 對工作流的支持

現在,您可以使用 Go 和 JavaScript/TypeScript 編寫具有持久執行能力的容錯、基於工作流的應用程序。
有關詳細信息,請參閱 Go SDK[4],並嘗試快速入門或
示例
有關更多詳細信息,請參閱 Javascript SDK[5],並嘗試快速入門或示例

HTTP 服務器的低指標基數

Dapr 現在包含一個可選設置,用於爲 HTTP 服務器發出的指標啓用低基數,這將在 Dapr 1.14 中默認啓用。

目前,Dapr HTTP 服務器會發出每個請求路徑的指標,據觀察,這會導致大量內存使用併產生其他負面性能影響。
啓用低基數指標後,HTTP Dapr 服務器的行爲更像 gRPC 服務器,並將每個 Dapr API 的請求組合在一起,從而可能顯着減少內存消耗。

優雅關機

Dapr 現在接受一個註釋或 CLI 標誌,該標誌會在此持續時間內延遲完全關閉過程,或者直到應用程序報告爲不健康 - 以較早者爲準。dapr.io/block-shutdown-duration--dapr-block-shutdown-duration

在此期間,所有訂閱和輸入綁定都將關閉。這對於需要使用 Dapr API 作爲其自己的關閉過程的一部分的應用程序非常有用。 

運行時和 SDK 中的標準化錯誤代碼

Dapr、PubSub 和 State API 現在具有返回給應用程序的適當和標準化的錯誤代碼,包括基於 gRPC 更豐富的錯誤模型的豐富錯誤詳細信息。

其餘的 API 正在進行中,非常感謝社區對這項工作的貢獻,並且非常有影響力。在此處查看有關錯誤代碼的其他信息。
查看每個 SDK 的文檔,瞭解每個 SDK 的錯誤代碼解析和處理。請參閱此處的 Go SDK 錯誤解析和處理示例[6]。

Actor Reminder 性能改進

現在,您可以選擇使用 protobuf 序列化而不是 JSON,使 actor Reminder數據使用 protobuf 序列化,從而在多個 Dapr 實例對同一Reminder運行時提高吞吐量、減少延遲並提高穩定性。啓用此功能後,我們觀察到 actor 提醒和工作流基準測試的改進高達 40%。此序列化方法將成爲 v1.14 中的默認方法。

重要:啓用此功能後,您不應將 Dapr 控制平面降級到早期版本,因爲您的提醒數據可能會變得不可讀。

若要爲 actor 提醒啓用 protobuf 序列化,請在 Kubernetes 上設置以下 Helm 參數:
在自託管模式下,運行帶有標誌的 daprd:dapr_placement.maxActorApiLevel=20--max-api-level=20

Rust SDK 對 actor 的支持 (alpha)

您現在可以使用 Rust 來運行 Dapr Actors,這是一種用於高度可擴展的有狀態應用程序的編程模型。有關更多詳細信息,請參閱 Rust SDK

組件
基於SQLite的本地名稱解析器

現在,您可以使用基於 SQLite 的名稱解析程序在自承載模式下進行服務調用。這對於處理過濾 mDNS 的公司防火牆和 VPN 非常有用。

PostgreSQL 狀態存儲 v2

PostgreSQL 有一個新的 v2 實現,其中包含對性能和可靠性的改進。建議新應用程序使用 v2。v1 實現仍受支持,並且未棄用。沒有從 v1 到 v2 的遷移路徑。

Azure Blob 存儲狀態存儲 v2

Azure Blob 存儲具有新的 v2 實現,建議用於所有新項目,因爲它修復了具有鍵前綴的向後不兼容 bug。v1 實現仍受支持,並且未棄用。沒有從 v1 到 v2 的遷移路徑。

 

相關鏈接:

[1]詳細瞭解Dapr: https://docs.dapr.io/concepts/overview/

[2]閱讀 Dapr 1.13的發行說明:https://github.com/dapr/blog/blob/v1.13_release_notes/daprblog/content/posts/2024/v1.13-release.md 

[3]組件“熱重載”:https://v1-13.docs.dapr.io/operations/components/component-updates/#hot-reloading-preview-feature

[4]Workflow Go SDK: ttps://github.com/dapr/go-sdk/tree/main/examples/workflow

[5]Workflow Javascript SDK: https://github.com/dapr/js-sdk/tree/main/examples/workflow/authoring

[6]Go SDK 錯誤解析和處理示例:https://v1-13.docs.dapr.io/developing-applications/sdks/go/go-client/#error-handling

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章