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 是一个有界上下文,用于管理与订票相关的所有操作。
点击标题