Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
booking-microservices:基于.Net Core的CQRS、DDD、垂直切片架构、事件溯源案例
22-05-09
banq
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 是一个有界上下文,用于管理与订票相关的所有操作。
点击标题
2
DDD案例源码
.net
CQRS命令查询分离架构
微服务架构