eShopOnContainers 是一个基于微服务的.NET Core示例框架
找到一個好的示例框架很難,但不是不可能。大多數是小型Todo風格的應用程序,通常基于SimpleCRUD。值得慶幸的是,Microsoft已經為eShopOnContainers創建了一個基于微服務的.NET Core示例應用程序。
?
eShopOnContainers是 .NET Core示例應用框架,由Microsoft提供支持,基于簡化的微服務架構和Docker容器技術。
這個示例應用程序在服務器和客戶端是跨平臺的,這要歸功于.NET Core服務能夠在Linux或Windows容器上運行,具體取決于您的Docker主機,以及Xamarin用于在Android,iOS或Windows / UWP plus上運行的移動應用程序客戶端Web應用程序的任何瀏覽器。
該體系架構提出了一種面向微服務的體系結構實現,具有多個自治微服務(每個都擁有自己的數據庫/ db),并在每個微服務中實現不同的方法(SimpleCRUD或DDD / CQRS模式),使用Http作為客戶端應用程序之間的通信協議。微服務和支持異步通信,用基于Integration Events 和Event Bus(輕量級消息代理,在下面的RabbitMQ或Azure Service Bus之間進行選擇)以及路線圖中定義的其他功能來跨多個服務進行數據更新傳播 ?。
eShopOnContainers
這是eShopOnContainers示例框架的開發環境概述。我只是想指出一些我認為在這個樣本中做得很好的作品。
?
?
Service Autonomy
每個服務(Identity, Catalog, Ordering, Basket, Marketing, Locations)都是自主的。它擁有自己的數據庫(存儲),并且對任何其他服務沒有任何依賴性。為了與其他服務進行通信,它在RabbitMQ或Azure Service Bus的 event bus上通過publish/subscriber使用事件驅動模型。
每個服務都包含自己的HTTP API,它提供檢索數據以及執行特定操作等功能。例如,Ordering服務包含一個API項目,該項目具有HTTP資源,用于檢索訂單以及取消訂單。
?
View Composition
由于每個服務都提供自己的HTTP API來檢索該服務中擁有的特定數據,因此最終需要從多個服務組合你需要的視圖。
Backend-For-Frontends(BFF)模式用于為特定客戶端類型提供單個API后端。例如,MVC和SPA應用程序使用Web-Shipping和Web-Marketing BFF,而Xamarin移動應用程序使用Mobile-Shopping和Mobile-Marketing BFF。最終,這些BFF對所需服務進行HTTP調用,以組成客戶端所需的數據。
?
其他
我強烈建議查看應用程序并進行一些挖掘。有許多不同的服務,每個服務都有自己獨特的架構。例如在其HTTP API中通過MediatR庫使用CQRS的訂購服務。它還使用了一些技術DDD模式。
如果你對Backends-For-Frontends感興趣,我建議你查看Sam Newman ?和Chris Richardson的帖子。
雖然有點過時,但特殊的還有一個eShopOnContainers 的分支,但修改后運行在NServiceBus之上。
最近正打算把單體應用程序改造成微服務。。
原文地址:https://www.cnblogs.com/fengqingyangNo1/p/9438428.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?
總結
以上是生活随笔為你收集整理的eShopOnContainers 是一个基于微服务的.NET Core示例框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dotnet core 微服务教程
- 下一篇: 「拥抱开源, 又见 .NET」系列第三次