Dapr背后的架構模式是符合未來架構趨勢(多運行時架構)和云原生發展趨勢的。知乎 iyacontrol 對 Dapr的意義有一個很好的概括:
對于小公司,甚至沒有基礎架構和中間件團隊的公司,Dapr 提供了開箱即用的基礎設施功能,可以讓小公司輕松構建彈性,分布式應用。
對于中等單位,具備一定的基礎架構能力,在使用Dapr的過程中,可能Dapr并不能完全滿足需求,那么也可以在Dapr框架體系下,花費較小的成本進行自定義擴展。
對于大公司,Dapr 提供了一種思路。相信基礎架構團隊會越來越傾向于通過交付Sidecar的形式來提供基礎設施。比如螞蟻集團就自行開發了- 螞蟻開源多運行時項目 Layotto 。
看源碼就是 先摸清宏觀路數(畢竟有些設計思想之類的東西,大概指明代碼用力的方向),然后順著幾個功能點深挖下去,一個功能點一條點,輔之以一定的類圖序列圖。幾條線搞清楚之后,宏觀也會逐漸清晰。蒼然暮色 寫了一個系列的Dapr 源碼解析:
Dapr 基本介紹
Dapr 是一個可移植的、事件驅動的運行時,使任何開發者都能輕松地建立在云和邊緣運行的有彈性、無狀態和有狀態的應用程序,并擁抱語言和開發者框架的多樣性。
Dapr 源碼解析 | 項目總覽
Dapr 源碼解析 | 配置模塊
dapr 配置主要分為三部分: 全局配置, 組件配置和運行時配置.全局配置和組件配置是以 yaml 形式定義的, 而且直接使用 k8s crd 類型
Dapr 源碼解析 | 組件模塊
Components是 dapr 抽象出來的提供某種特定功能的可插拔組件, 為 dapr 或者 building blocks 所使用。
Dapr 源碼解析 | 服務間調用
Service Invocation 是 dapr 對外提供的最基礎功能, 也就是服務間調用. 另外別的一些功能也會間接使用它.
Dapr 源碼解析 | mTLS
mutual authentication TLS 是 dapr 提供的開箱即用的安全功能, 為 dapr sidecar 之間的流量進行加密。
Dapr 源碼解析 | 可觀測性
Observability(可觀測性)一般指 Logging, Metrics和 Tracing。
Dapr 源碼解析 | Operator
dapr operator 是 dapr 的幾個獨立軟件之一.operator 是對 k8s 功能的擴展, 可以用來擴展 CRD 做更精細化的事情, 例如: 自動化運維部署高可用數據庫, 因為它是用代碼解決問題而不是配置.
Dapr 源碼解析 | Sidecar Injector
dapr sidecar injector 是 dapr 幾個獨立軟件之一, 功能是在 k8s 環境為用戶服務注入 dapr runtime sidecar 容器.
Dapr 源碼解析 | Name Resolution
Name resolution 解決的是微服務中的服務發現問題, dapr 中服務的標識符為 app-id, 服務間調用是通過 app-id來確定目標服務的. 所以就需要 app-id到真實服務地址的映射. dapr 服務發現其實就是單純的 gRPC 服務發現, 因為服務間調用是通過 dapr sidecar 轉發的, 而 sidecar 之間是通過 gRPC 交流的, 所以最終就變成了 gRPC 服務發現了.返回搜狐,查看更多
本文地址:/xiyd/293677.html
請遵守互聯網相關規定,不要發布廣告和違法內容