日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手把手教你学Dapr - 2. 必须知道的概念

發布時間:2023/12/4 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手把手教你学Dapr - 2. 必须知道的概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Sidecar 邊車

Dapr API提供Http和gRPC兩種通訊方式。

運行方式則可以是容器也可以是進程(Windows開發推薦使用Self Hosted,后續會解釋)。

這樣的好處是與運行環境無關,且獨立運行不需要應用包含Dapr運行時的代碼。只需要通過SDK集成即可,這使得Dapr與應用的邏輯分離。

Building blocks 構建塊

官方解釋:可通過標準HTTP或gRPC api訪問的模塊化最佳實踐

通俗一點來說,就是API

目前支持的構建塊如下,但1.5很快會出一個新的Configuration API(從這個新的API又印證了構建塊的本質),由阿里-敖小劍牽頭整理的

Github Issue: https://github.com/dapr/dapr/issues/2988

這個提案很長,很曲折。仔細看會發現中外開發大環境下的一些思想碰撞。微軟相對保守,阿里相對激進但也更務實。最終長達幾個月的激烈討論下定版。

期間本人也有幸與阿里-敖小劍和阿里-儀式(Layotto的研發同學,Layotto兼容Dapr協議,是螞蟻在做)開過語音會議一起聊過對于Configuration API的一些設計問題。

  • 服務調用

  • 狀態管理

  • 發布訂閱

  • 綁定

  • Actor(這個不建議翻譯回中文)

  • 可觀測性

  • 安全

Components 組件

官方解釋:被用于構建塊和應用程序的模塊化功能

Dapr 使用模塊化設計,將功能作為組件來提供。每個組件都有接口定義。所有組件都是可插拔的,因此您可以將組件換為另一個具有相同接口的組件。

結合構建塊來看,組件有接口定義。而構建塊則通過接口將組件的功能串聯起來

基于對Dapr設計的理解,我們的MASA Framework也定義出了 BuildingBlocks 和 Contrib,與dapr會有些許不同

原因如下:

  • 由BuildingBlocks定義標準、串業務流程

  • 讓Contrib變成我們的最佳實踐,并允許開發重新定義BuildingBlocks的具體實現,在保證功能完整的前提下提供更符合業務場景的功能又有參考代碼

  • 聚焦核心代碼穩定性,提供單元測試覆蓋率保障,共享大眾智慧

  • 組件與構建塊并不是一一對應的,組件可以被不同的構建塊復用,比如Actor構建塊內的狀態管理也是用的狀態存儲組件

    • 狀態存儲

    • 服務發現

    • 中間件

    • 發布訂閱代理

    • 綁定

    • 密鑰存儲

    Configuration 配置

    官方解釋:變更Dapr Sidecar或全局Dapr系統服務的行為

    配置定義和部署形式為YAML文件

    在官方文檔的Component sepcs可以看到每個組件提供了多少種實現,每個實現特性支持情況

    除此之外不同組件的配置文件格式也是應有盡有

    官方文檔對于組件配置的講解非常詳細,這里舉個例子,Redis狀態管理的配置文件格式

    你需要變更的部分已經用<*>和 # * 做了標記

    參考自:https://docs.dapr.io/reference/components-reference/supported-state-stores/setup-redis/

    apiVersion:?dapr.io/v1alpha1 kind:?Component metadata: name:?<NAME> namespace:?<NAMESPACE> spec: type:?state.redis version:?v1 metadata: -?name:?redisHostvalue:?<HOST> -?name:?redisPasswordvalue:?<PASSWORD> -?name:?enableTLSvalue:?<bool>?# Optional. Allowed: true, false. -?name:?failovervalue:?<bool>?# Optional. Allowed: true, false. -?name:?sentinelMasterNamevalue:?<string>?# Optional -?name:?maxRetriesvalue:?# Optional -?name:?maxRetryBackoffvalue:?# Optional -?name:?ttlInSecondsvalue:?<int>?# Optional

    Observability 可觀測性

    官方解釋:通過跟蹤、指標、日志和健康狀況監視應用

    在構建應用程序時,了解系統如何運行是運維的一個重要部分——這包括有能力觀測應用程序的內部調用,評估其性能并在發生問題時立即意識到問題

    這對任何系統都是一種挑戰,而對于由多個微服務組成的分布式系統來說更是如此

    分布式跟蹤

    配置發送跟蹤數據,輕松集成多個監控后端

    OpenTelemetry collector

    配置OpenTelemetry收集器,使用支持OpenTelemetry的監控后端

    Dapr Sidecar和系統服務的可觀測性

    配置收集Dapr Sidecar和相關服務的指標和日志

    Security 安全性

    Dapr 用于加密傳輸中數據的安全機制之一是 相互認證(mutual authentication)TLS 或簡寫為 mTLS

    • 雙向身份驗證

    • 通過加密通道通信

    Sidecar與應用通信

    Dapr Sidecar通過localhost與應用通信,并提供Token API級別身份驗證

    Sidecar之間的通信

    Dapr默認開啟mTLS(可以手動關閉,有一定的性能損耗,大多數情況下可以忽略不計)。Dapr利用Sentry的系統服務充當證書頒發機構,包括證書輪換。

    證書默認有效期為24小時,時鐘偏差為15分鐘。

    Self Hosted mTLS

    K8s mTLS

    Sidecar與系統服務之間的通信

    Dapr Sidecar和Dapr系統服務之間是強制性mTLS的,包括Sentry(證書頒發機構)、Placement(Actor安置服務)和K8s Operator

    K8s中系統服務的mTLS

    • Dapr Sidecar與Dapr系統服務(Actor Placement, Sidecar Injector, Sentry, Operator)之間是通過mTLS

    • Kubelet與Dapr Sidecar之間也是通過mTLS

    • Dapr Sidecar或者Dapr系統服務與Components之間也是通過mTLS

    • Dapr Sidecar與應用之間不是

    其實Dapr在安全方面做的工作很多,這里就不繼續一一列舉了

    我們正在行動,新的框架、新的生態

    我們的目標是自由的、易用的、可塑性強的、功能豐富的、健壯的。

    所以我們借鑒Building blocks的設計理念,正在做一個新的框架MASA Framework,它有哪些特點呢?

    • 原生支持Dapr,且允許將Dapr替換成傳統通信方式

    • 架構不限,單體應用、SOA、微服務都支持

    • 支持.Net原生框架,降低學習負擔,除特定領域必須引入的概念,堅持不造新輪子

    • 豐富的生態支持,除了框架以外還有組件庫、權限中心、配置中心、故障排查中心、報警中心等一系列產品

    • 核心代碼庫的單元測試覆蓋率90%+

    • 開源、免費、社區驅動

    • 還有什么?我們在等你,一起來討論

    經過幾個月的生產項目實踐,已完成POC,目前正在把之前的積累重構到新的開源項目中

    目前源碼已開始同步到Github(文檔站點在規劃中,會慢慢完善起來):

    MASA.BuildingBlocks

    MASA.Contrib

    MASA.Utils

    MASA.EShop

    BlazorComponent

    MASA.Blazor

    QQ群:7424099

    微信群:加技術運營微信(MasaStackTechOps),備注來意,邀請進群

    總結

    以上是生活随笔為你收集整理的手把手教你学Dapr - 2. 必须知道的概念的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。