Udemy课程带有打折 – 逐步开发此存储库 – > https://www.udemy.com/course/microservices-architection-anchitucture-and-implementation-remplementation-inmplementation-on-dotnet/?couponcode=july2555
请参阅使用.NET工具在现实电子商务微服务项目上使用.NET工具的实现的总体图表;
有几个微服务通过NOSQL(DocumentDB,Redis)和关系数据库(Postgresql,SQL,SQL Server)实现了目录,篮子,折扣和订购微服务的电子商务模块,并通过RabbitMQ Event驱动的通信和使用YARP API Gateway进行通信。
在介质上检查此存储库的说明
- .NET 8微服务:DDD,CQR,垂直/干净体系结构和事件驱动的通信
什么包括在此存储库中
我们已经在Run-Aspnetcore-Microservices存储库上实现了以下功能。
目录微服务包括;
- ASP.NET核心最小API和.NET8和C#12的最新功能
- 带有功能文件夹和单个.cs文件的垂直切片体系结构实现了一个文件中的不同类
- 使用MediaTR库实施CQRS
- CQRS验证管道行为具有MediaTR和FulentValidation
- 在PostgreSQL上使用Marten Library进行.NET交易文档DB
- 使用Carter进行最小API端点定义
- 横切问题记录,全球异常处理和健康检查
篮子微服务包括;
- ASP.NET 8 Web API应用程序,遵循REST API原理,CRUD
- 将redis用作篮子上的分布式缓存
- 实施代理,装饰器和缓存图案
- 消费折扣GRPC服务用于服务间沟通以计算产品最终价格
- 使用MassTransit和RabbitMQ发布Basketcheckout队列
折扣微服务包括:
- ASP.NET GRPC服务器应用程序
- 与篮子微服务建立高性能的服务间GRPC通信
- 通过创建Protobuf消息来揭示GRPC服务
- 实体框架核心ORM – SQLite数据提供商和迁移以简化数据访问并确保高性能
- SQLITE数据库连接和容器化
微服务通信
- 同步服务间的GRPC通信
- 异步微服务与RabbitMQ Message-Broker Service通信
- 使用RabbitMQ发布/订阅主题交换模型
- 使用MassTransit通过RabbitMQ消息传播系统进行抽象
- 从篮子微服务中发布Basketcheckout活动队列,并通过订购微服务订阅此事件
- 创建Rabbitmq EventBus.messages库,并添加参考文献微服务
订购微服务
- 使用最佳实践实施DDD,CQR和清洁体系结构
- 使用MediaTR,FulentValidation和Mopter软件包开发CQR
- 使用使用MassTransit-RabbitMQ配置消费Rabbitmq Basketcheckout事件队列
- SQLServer数据库连接和容器化
- 使用实体框架核心ORM和自动在应用程序启动时迁移到SQLServer
YARP API网关微服务
- 使用YARP反向代理开发API网关,应用网关路由模式
- 纱线反向代理配置;路线,集群,路径,变换,目的地
- YARP反向代理配置上的固定窗口限制限制速率
WebUI购物微服务
- 带有Bootstrap 4和Razor模板的ASP.NET核心Web应用程序
- 使用REFIT HTTPCLIENTFACTORY致电YARP API
Docker与Docker上的所有微服务组成;
- 微服务的容器化
- 数据库的容器化
- 覆盖环境变量
运行项目
您将需要以下工具:
- Visual Studio 2022
- .NET Core 8或更高版本
- Docker桌面
安装
请按照以下步骤设置开发环境:(在运行启动Docker Desktop之前)
- 克隆存储库
- 安装了Windows的Docker后,请转到“设置”>“高级选项” (从系统托盘中的Docker图标),以配置最小内存量和CPU。
- 内存:4 GB
- CPU:2
- 在解决方案的根目录处,选择Docker-Compose并设置一个启动项目。运行Docker-Compose而无需在Visual Studio上进行调试。或者,您可以转到包括docker-compose.yml文件的root Directory,在下面运行:
docker - compose - f docker - compose . yml - f docker - compose . override . yml up - d
-
等待Docker构成所有微服务。就是这样! (某些微服务需要额外的时间上班,所以如果不首次关闭,请等待)
-
启动购物Web UI-> https:// localhost:6065在您的浏览器中查看索引页面。您可以使用Web项目来通过YARP API网关调用微服务。当您查看篮子时,您可以在RabbitMQ仪表板上遵循队列记录。
作者
- Mehmet Ozkaya-初始工作-Mehmetozkaya
另请参阅参与该项目的贡献者列表。还要检查存储库的GIHTUB页面。
