<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      MASA Framework - 整體設計思路

      目錄

      MASA Framework - 整體設計思路
      MASA Framework - EventBus設計
      MASA Framework - MASA Framework - DDD設計(1)
      MASA Framework - MASA Framework - DDD設計(2)

      源起

      年初我們在找一款框架,希望它有如下幾個特點:

      1. 學習成本低

        只需要學.Net每年主推的技術棧和業務特性必須支持的中間件,給開發同學減負,只需要專注業務就好

        個人見解:一款好用的框架應該是補充,而不是顛覆或過度創新

      2. 對擴展開放

        可以按照業務需求任意調整依賴實現,而不被捆綁在一個架構思路上

      3. 功能強大卻不限制架構,從單體到SOA再到微服務都可以適應

        因為一個系統中總有復雜的也有簡單的,最好能全面覆蓋我們的業務場景

      4. 行業不限

        既能支持傳統行業的業務特殊性,又可以支持互聯網行業的高并發特性

      5. 穩定性

        有嚴格的測試標準,用起來更安心

      契機

      在我們做技術選型的時候,對Dapr的研究越深入,對我們想要做的事情就越清晰

      站在Dapr的設計上我們找到了一個平衡點,Mecha

      可以看下這篇文章(Mecha:將Mesh進行到底):https://skyao.io/talk/202004-mecha-mesh-through-to-the-end/

      Mecha的特性

      1. Mecha是通用的,高度可配置的,可重用的組件,提供分布式原語作為現成的能力
      2. Mecha 可以與單個Micrologic組件一起部署(Sidecar模式),也可以部署為多個共享(注:我稱之為Node模式)
      3. Mecha不對Micrologic運行時做任何假設。它與使用開放協議和格式(例如HTTP/gRPC,JSON,Protobuf,CloudEvents)的多語言微服務甚至單體一起使用
      4. Mecha以簡單的文本格式(例如YAML,JSON)聲明式地配置,指示要啟用的功能以及如何將其綁定到Micrologic端點
      5. 與其依靠多個代理來實現不同的目的(例如網絡代理,緩存代理,綁定代理),不如使用一個Mecha提供所有這些能力

      換個角度看Mecha

      1. Mecha提供的是能力,不論是單體還是分布式

      2. Mecha與服務之間交互是有開放API標準的

      3. Mecha可以通過文本格式(Yaml或Json)聲明式地配置

        對于.Net開發來說,更習慣用Json

      4. 應用需要多種多樣的能力,Mecha提供了一整套解決方案卻不強綁定你所有都要用到,按需即可

      5. 每個能力有不同的實現版本,可以根據自身業務情況替換其中某一部分的能力

      為什么是Mecha

      Mecha的好處是業務邏輯和越來越多的分布式系統問題之間的松耦合,除了可以解決分布式以外,我們是否也可以延展成業務邏輯和架構之間的松耦合?

      當然,說到底就是dll而已

      coupling-in-different-architectures_hu05f2d69ba0319c258f11ab39e179ac17_281537_1200x1200_fit_q75_lanczos.jpg

      在分布式架構中,它以Sidecar的形式守護在應用身旁。

      如果在.Net項目中,它是否可以類似.Net Framework作為基建/適配器/中間件/總線等身份駐留在.Net進程中提供基礎能力?

      設計思路

      一個完整的設計要先從概念開始,為了降低學習成本我們直接復用Dapr的概念定義

      概念

      構建塊

      提供接口標準,并為了達到某個基礎能力的串接不同組件(也通過接口),松耦合但不脫鉤

      組件

      基于接口標準的實現,比如服務間通訊提供HttpClient和Dapr Service Invocation等不同組件的實現

      工具庫

      提供更抽象的底層能力,供業務和組件完成自身功能,如緩存/配置/數據操作/安全等

      Roadmap - v1.0

      • 基于.Net主推技術棧,不魔改,降低學習成本
      • 提供項目模板,根據業務需求自由組合功能集合
      • 支持單體架構,也支持分布式架構
      • 支持DDD方法論,也支持CQRS
      • 盡量小的依賴集合,但不為了小而小
      • 約定優于配置
      • 有創新,且要經過生產驗證

      MASA.Framework.png

      目前進展

      我們首先完成了用于指導架構相關的部分,如DDD、CQRS、Minimal APIs擴展等,并保持單元測試覆蓋率在90%以上,目前93%。

      以Contrib的目錄結構為例:

      MASA.Contrib
      ├── solution items
      │   ├── nuget.config
      ├── src
      │   ├── BasicAbility
      │   │   ├── MASA.Contrib.BasicAbility.Dcc                          Configuration API
      │   ├── Configuration
      │   │   ├── MASA.Contrib.Configuration
      │   ├── Data
      │   │   ├── MASA.Contrib.Data.UoW.EF                               Unit of work
      │   │   └── MASA.Contrib.Data.Contracts.EF                         Protocol EF version
      │   ├── DDD
      │   │   ├── MASA.Contrib.DDD.Domain                                In-process and cross-process support
      │   │   └── MASA.Contrib.DDD.Domain.Repository.EF
      │   ├── Dispatcher
      │   │   ├── MASA.Contrib.Dispatcher.Events                         In-process event
      │   │   ├── MASA.Contrib.Dispatcher.IntegrationEvents.Dapr
      │   │   └── MASA.Contrib.Dispatcher.IntegrationEvents.EventLogs.EF Cross-process event
      │   ├── ReadWriteSpliting
      │   │   └── CQRS
      │   │   │   └── MASA.Contrib.ReadWriteSpliting.CQRS                CQRS
      │   ├── Service
      │   │   └── MASA.Contrib.Service.MinimalAPIs                       Best practices for [MinimalAPI]
      ├── test
      │   ├── MASA.Contrib.Dispatcher.Events
      │   │   ├── MASA.Contrib.Dispatcher.Events.BenchmarkDotnetTest
      │   │   ├── MASA.Contrib.Dispatcher.Events.CheckMethodsParameter.Tests
      │   │   ├── MASA.Contrib.Dispatcher.Events.CheckMethodsParameterNotNull.Tests
      │   │   ├── MASA.Contrib.Dispatcher.Events.CheckMethodsParameterType.Tests
      │   │   ├── MASA.Contrib.Dispatcher.Events.CheckMethodsType.Tests
      │   │   ├── MASA.Contrib.Dispatcher.Events.OnlyCancelHandler.Tests
      │   │   ├── MASA.Contrib.Dispatcher.Events.CheckMethodsType.Tests
      │   │   ├── MASA.Contrib.Dispatcher.Events.Tests
      │   ├── MASA.Contrib.Data.UoW.EF.Tests
      │   ├── MASA.Contrib.Dispatcher.IntegrationEvents.EventLogs.EF.Tests
      │   ├── MASA.Contrib.DDD.Domain.Tests
      │   ├── MASA.Contrib.DDD.Domain.Repository.EF.Tests
      

      有什么新功能

      • Minimal APIs支持類似Controller的API分類聚合
      • Event Bus支持Hanlder編排、SAGA、Middleware、事務控制、Event和Hanlder解耦模式。相較于MediatR性能僅有0.x%的差距但功能更加強大,可以面對更復雜的業務場景,并且已規劃性能優化路線
      • Integration Event Bus是Event Bus的增強版,支持分布式事務(最終一致性),與Dapr集成
      • Domain Event Bus是Event Bus和Integration Event Bus的集成版,支持在領域內自動控制進程內與進程外的事件,支持實時發送也支持入棧后統一發送

      更多功能等你來體驗,也歡迎提意見

      什么是MASA

      MASA = Mesh Application Service Architecture,即網格應用服務架構

      除了MASA Framework,我們馬上將開源Blazor組件庫(MASA Blazor),包括管理后臺模板(MASA Blazor Pro)

      后續還有MASA Stack開源產品,基于MASA Framework打造的一站式PaaS平臺,具備DevOps、微服務觀測治理、數據治理等平臺級能力

      示例 - MASA.EShop

      MASA.EShop是使用MASA.Framework復刻了eShopOnDapr的功能,并提供了多種架構方式的示例。

      • 支持Docker Compose
      • dapr component配置
      • Blazor版EShop網站(正在籌備更換為MASA Blazor Pro的UI)
      • 共享Contracts
      • 所有服務都使用Minimal APIs和Dapr Pub/Sub進行通信
      • MASA.EShop.Services.Basket演示單體架構,使用Dapr State Management
      • MASA.EShop.Services.Catalog演示CQRS,使用CQRS、貧血模型
      • MASA.EShop.Services.Ordering演示CQRS與Actor,使用CQRS、貧血模型、Dapr Actor
      • MASA.EShop.Service.Payment演示CQRS與DDD,使用CQRS、DDD、充血模型

      eshop.png

      開源地址

      MASA.BuildingBlocks:https://github.com/masastack/MASA.BuildingBlocks

      MASA.Contrib:https://github.com/masastack/MASA.Contrib

      MASA.Utils:https://github.com/masastack/MASA.Utils

      MASA.EShop:https://github.com/masalabs/MASA.EShop

      如果你對我們的MASA Framework感興趣,無論是代碼貢獻、使用、提Issue,歡迎聯系我們

      16373211753064.png

      參考

      posted @ 2022-01-11 18:26  尋找和諧  閱讀(1112)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 国产日韩一区二区在线| 双鸭山市| 91一区二区三区蜜桃臀| 国产成人精品亚洲精品日日| 日韩乱码人妻无码中文字幕| 国产高清自产拍av在线| 亚洲av色综合久久综合| 国产精品丝袜亚洲熟女| 洞口县| 亚洲禁精品一区二区三区| 老色批国产在线观看精品| 国产高清一区二区不卡| 精品少妇av蜜臀av| 男女xx00xx的视频免费观看| 国产老熟女狂叫对白| 中方县| 人妻精品动漫h无码| 亚洲AV成人片不卡无码| 看全色黄大色黄大片 视频| 亚洲热线99精品视频| 国产av无码专区亚洲av软件| 无码国产精品一区二区免费式芒果 | 久久中文字幕无码专区| 精品亚洲精品日韩精品| 门国产乱子视频观看| 国产高清av首播原创麻豆| 在线视频中文字幕二区| 国产成人精品a视频一区| 久久理论片午夜琪琪电影网| 日韩在线观看精品亚洲| 天天爱天天做天天爽夜夜揉| 色翁荡息又大又硬又粗又视频图片| 国产一区二区日韩经典| 樱花影院电视剧免费| 成熟妇女性成熟满足视频| 成人免费AA片在线观看| 驻马店市| 日韩伦理片| 亚洲国产精品自在拍在线播放蜜臀| 久久精品国产中文字幕| 欧美日韩v|