booking-microservices:基於.Net Core的CQRS、DDD、垂直切片架構、事件溯源案例
Booking Microservices 是一個用於預訂機票的示例應用程式。此應用程式基於不同的軟體架構和技術,如 .Net Core、CQRS、DDD、Vertical Slice Architecture、Docker、kubernetes、tye、masstransit、RabbitMQ、Grpc、yarp 反向代理、Identity Server、Redis、SqlServer、Entity Framework Core、EventSourcing。
特點:
- 微服務基於Domain Driven Design (DDD)實現。
- 對每個微服務都正確separation of bounded contexts。
- 通過非同步MessageBus和events.
- 簡單CQRS的實現和事件驅動的架構。
- 使用Best Practice和New Technologies和Design Patterns。
- 使用Docker-Compose和 Kubernetes為我們的部署機制。
- 實施各種型別的測試Unit Testing,如Integration Testing.
詳細技術:
- .NET 6- .NET Framework 和 .NET Core,包括 ASP.NET 和 ASP.NET Core
- MVC Versioning API- 將服務 API 版本控制新增到 ASP.NET Web API、帶有 ASP.NET Web API 的 OData 和 ASP.NET Core 的一組庫
- EF Core- .NET 的現代物件資料庫對映器。它支援 LINQ 查詢、更改跟蹤、更新和模式遷移
- Masstransit- .NET 的分散式應用程式框架。
- MediatR- .NET 中簡單、無野心的調解器實現。
- FluentValidation- 用於構建強型別驗證規則的流行 .NET 驗證庫
- Swagger & Swagger UI- 用於記錄基於 ASP.NET Core 的 API 的 Swagger 工具
- Serilog- 帶有完全結構化事件的簡單 .NET 日誌記錄
- Polly- Polly 是一個 .NET 彈性和瞬態故障處理庫,允許開發人員以流暢和執行緒安全的方式表達重試、斷路器、超時、隔板隔離和回退等策略
- Scrutor- Microsoft.Extensions.DependencyInjection 的程式集掃描和裝飾擴充套件
- Opentelemetry-dotnet- OpenTelemetry .NET 客戶端
- DuendeSoftware IdentityServer- 適用於 ASP.NET Core 的最靈活且符合標準的 OpenID Connect 和 OAuth 2.x 框架
- EasyCaching- 開源快取庫,包含快取的基本用法和一些高階用法,可以幫助我們更輕鬆地處理快取。
- Mapster- .NET 中基於約定的物件-物件對映器。
- Hellang.Middleware.ProblemDetails- .Net Core 中用於處理異常的中介軟體
- IdGen- 用於 .Net 的類似 Twitter 雪花的 ID 生成器
- Yarp- 用於在 .NET 中構建快速代理伺服器的反向代理工具包
- Tye- 使開發、測試和部署微服務和分散式應用程式更容易的開發工具
- MagicOnion- 用於 .NET、.NET Core 和 Unity 的基於 gRPC 的 HTTP/2 RPC 流框架。
- EventStore- 具有複雜事件處理功能的開源功能資料庫。
- MongoDB.Driver- 用於 MongoDB 的 .NET 驅動程式。
領域和有界上下文 - 服務邊界
- Identity Service: Identity Service 是一個有界上下文,用於通過Identity Server對使用者進行身份驗證和授權。此外,該服務還負責使用.Net Core Identity和 Jwt 身份驗證和授權建立使用者及其相應的角色和許可權。
- Flight Service:Flight Service 是與航班相關的所有操作的有界上下文,並獲得可用的航班和座位。
- Passenger Service:乘客服務是一個有界上下文,用於管理我們的乘客資訊、跟蹤活動和訂閱以獲取缺貨產品的通知
- Booking Service: Booking Service 是一個有界上下文,用於管理與訂票相關的所有操作。
點選標題
相關文章
- 基於事件溯源與CDC的事件驅動微服務架構案例原始碼事件微服務架構原始碼
- 基於乾淨架構使用原始SQL和DDD實現.NET Core REST API開源案例架構SQLRESTAPI
- .NET遵循CQRS-ES架構的EventFlow的DDD + CQRS + Event-sourcing原始碼架構原始碼
- 使用AsyncAPI規範簡潔實現CQRS事件溯源案例API事件
- DDD CQRS架構和傳統架構的優缺點比較架構
- 否定洋蔥或clean架構的垂直切片架構 - Jimmy Bogard架構
- .NET Core中的事件溯源開源專案事件
- .NET的事件溯源構建庫:Eventuous事件
- 介紹基於事件的架構事件架構
- GitHub - kgrzybek/modular-monolith-with-ddd: DDD單體模組化架構.NET案例原始碼GithubMono架構原始碼
- GitHub - soooban/AxonDemo: 使用Axon/Spring Cloud實現事件溯源和CQRS案例GithubSpringCloud事件
- 從單體架構遷移到 CQRS 後,DDD 並不可怕架構
- 【DDD/CQRS/微服務架構案例】在Ubuntu 14.04.4 LTS中執行WeText專案的服務端微服務架構Ubuntu服務端
- 基於DDD領域建模思想、COLA開源架構和CQRS模式設計和構建貨物運輸系統架構模式
- .NET Core 使用MediatR CQRS模式模式
- ECommerce Microservices:基於DDD+CQRS的實用電子商務.NET原始碼ROS原始碼
- 基於SpringCloud的Microservices架構實戰案例-架構拆解SpringGCCloudROS架構
- Java的CQRS和事件溯源ES入門:如何從CRUD切換到CQRS/ES - BaeldungJava事件
- 領域驅動設計DDD和CQRS架構模式落地實踐架構模式
- 關於DDD,語言和主流架構架構
- 最全面的CQRS和事件溯源介紹 - Software House ASC事件
- OnionArch 2.0 - 基於DDD的洋蔥架構改進版開源架構
- 基於Kubernetes 構建.NET Core 的技術體系
- DDD 中的那些模式 — CQRS模式
- 基於Java的微服務架構原始碼案例AbixenJava微服務架構原始碼
- Spring Boot和EventStoreDB事件溯源案例Spring Boot事件
- [譯] 理解 NodeJS 中基於事件驅動的架構NodeJS事件架構
- DDD CQRS 的前後端整合後端
- 教你玩轉微服務--基於DDD的微服務架構落地實踐之路微服務架構
- 單體架構到垂直架構架構
- .NET分散式Orleans - 6 - 事件溯源分散式事件
- 基於.NET的LINQ to SQL 三層架構開發之架構建立SQL架構
- 關於如何設計一個基於事件驅動架構的思考事件架構
- 使用Redis/RabbitMQ/EventStore實現事件溯源CQRS微服務應用 - Aram KoukiaRedisMQ事件微服務
- 對CQRS架構的幾點疑問架構
- cqrs架構下的主鍵如何生成架構
- 如何在Java後端中實現事件驅動架構:從事件匯流排到事件溯源Java後端事件架構
- NET Core微服務架構視訊教程微服務架構