Dapr 是一個開源、可移植的、事件驅動的運行時,可以幫助開發人員構建在雲和邊緣上運行的彈性的、微服務的、無狀態和有狀態應用程序,並且關注於業務邏輯而不用考慮分布式相關的問題。 分布式相關的問題交給Dapr來解決。
2022年4月8日正式發布了1.7 版本, 這是這是自Dapr v1.0 發布以來的第七次小版本更新,Dapr 1.7.0 版本的貢獻者數量最多。我們要感謝所有 83 位新的和現有的貢獻者,他們幫助實現了這個版本。 這次更新的內容很多都是大家期盼的功能,例如支持離線部署、更多的成熟Stable組件等,接下來我們一起來看看更新的內容。
1、跨 Dapr API 配置重試、超時和斷路器 ,這部分我也寫了一篇文章: Dapr 彈性的策略,Dapr 1.7.0 實現了第一階段目標。分布式應用程序通常由許多服務組成,任何給定應用程序都有數十個甚至數百個實例。這些應用程序並非孤立存在,而是多次依賴於數據庫、緩存、發布/訂閱、秘密存儲和其他基礎設施服務。隨着更多的依賴關系,系統故障的可能性增加。例如,由於硬件故障、數據庫運行緩慢、請求數量過多、應用程序重新啟動/橫向擴展或其他幾個原因,實例可能會失敗或無響應。設計和實施具有容錯能力(檢測、緩解和響應故障的能力)的應用程序可以使您的應用程序恢復到正常運行狀態並自我修復,還有助於防止級聯故障一直到您的基礎設施服務。
Dapr 提供了通過彈性規范定義和應用容錯彈性策略的能力。彈性規范保存在與組件規范相同的位置,並在 Dapr sidecar 啟動時應用。Sidecar確定如何將彈性策略應用於您的 Dapr API 調用。在彈性規范中,您可以為流行的彈性模式定義策略,例如:
然后可以將策略一致地應用於目標,其中包括:
2、在可觀測性方面進一步加強,為了提高操作的可見性,組件中添加了新的指標,包括發布/訂閱、綁定、狀態存儲等。例如:
- 使用組件時的延遲。
- 調用給定組件的次數。
Dapr 運行時將事件記錄到標准輸出以便於診斷;例如,列出啟動時加載的組件的其他運行時信息。使用此版本,您現在可以:
- 打開應用程序和 Dapr sidecar 之間API 調用的日志記錄。
- 在輸出日志中查看這些調用。
3、組件改進,在之前的 Dapr 版本中具有穩定候選版本的以下組件已升級為穩定版本,特別是MQTT 發布訂閱組件的進入穩定狀態,對於在邊緣計算的采用提供了一個非常好的支持:
在這個版本中添加了3個狀態組件,一共有23個狀態組件了,華為雲也開始提交了一個新的狀態組件,1.8 版本會成為新增的狀態組件。
在現有組件中加入了新的功能:
influxdb綁定現在支持查詢。在這個版本中,現在共有 97 個組件,包括 41 個綁定、1 個配置、8 個 HTTP 中間件、3 個名稱解析、13 個 pub/sub、8 個秘密存儲和 23 個狀態存儲。
4、功能從預覽版移至穩定版
在至少兩個版本可用並征求反饋和修復后,一些功能從預覽狀態轉移到穩定狀態。此版本中的以下功能現已穩定:
5、CLI 更新
Kubernetes 命名空間支持
CLI 的命令 components
, configurations
, 和 list
在返回的輸出結果中支持Kubernetes的命名空間
簡化新根證書和應用程序證書的更新:
- 引入了dapr mtls renew-certificate命令,可以更輕松地解決集群中的根證書到期和續訂問題。
-k
如果根證書到期時間不足 30 天,任何使用 Kubernetes 選項的 CLI 命令現在都會引發警告消息。
6、在自托管模式下安裝 Dapr 的新方法
私有和備用映像注冊表(預覽)
在自托管模式下,CLI init
命令現在可以:
- 指定任何私有注冊表以提取安裝 Dapr 所需的容器Image。
- 提供選擇公共 Docker hub 或 Github 存儲庫的能力。這使您能夠:
- 將Image放置在您選擇的受信任存儲庫中。
- 在Image 限制的情況下從不同的公共資源中提取。
離線安裝(預覽版)
默認情況下,Dapr 會下載二進制文件並從網絡中提取Image 以設置開發環境。在此版本中,Dapr 現在支持使用預下載的制品進行離線 安裝,無論是使用 Docker 還是silm環境。每個 Dapr 版本的制品現在都內置在Dapr Installer Bundle中,可以從 repo :https://github.com/dapr/installer-bundle 下載。通過將此安裝程序包與 Dapr CLI init
命令一起使用,從而實現離線安裝。
7、性能改進
Unix 域套接字現在在 Kubernetes 上可用,現在,您可以在使用注釋 dapr.io/unix-domain-socket-path 調用 Dapr sidecar 時將 Unix Domain Sockets 與 Kubernetes(以及自托管)一起使用,以提高吞吐量並降低延遲。
如果您不熟悉 Dapr,請訪問入門頁面並熟悉 Dapr。 文檔已更新,包含此版本的所有新功能和更改。通過概念和開發應用程序文檔開始使用此版本中引入的新功能。要將 Dapr 升級到 1.7.0 版,請跳至本節。