.NET Core 微服务实例

时间:2023-03-09 03:51:26
.NET Core 微服务实例

关于微服务,MSDN给出了定义和架构图:https://docs.microsoft.com/zh-cn/azure/architecture/guide/architecture-styles/microservices

.NET Core 微服务实例

Management. 管理组件负责将服务放置在节点上、标识故障、跨节点重新平衡服务等等。

Identity Provider. 分布式验证服务提供者。

Service Discovery. 维护一个包含服务及其所在节点的列表。 支持使用服务查找功能查找服务的终结点。

API Gateway. API 网关是客户端的入口点。 客户端不直接调用服务, 而是调用 API 网关,网关再将调用转发到后端上的相应服务。 API 网关可以聚合来自多个服务的响应,并返回聚合的响应。

CDN. 内容分发服务网络。

Static Content 静态内容

.NET Core 微服务实例

传统架构对比微服务架构:

.NET Core 微服务实例

可见:微服务架构更适合DDD建模开发。比传统架构更独立,功能划分更明显。每个服务块都运行在自己的独立空间内,相互不干扰。各模块之间的通信利用消息队列完成。甚至数据库都可以是各自独立。

项目实例:

新建.NET Core项目

1.新建项目

.NET Core 微服务实例

2.选择API项目

.NET Core 微服务实例

添加数据模型:

1.添加Model文件夹,同时添加Product和Category类

.NET Core 微服务实例

.NET Core 微服务实例

添加EF Core

从引用中管理Nuget包。添加EFCore的引用。Microsoft.EntityFrameworkCore

引用以后新增DBContext文件夹并添加ProductContext上下文类

重写OnModelCreating方法初始化数据:

.NET Core 微服务实例

在appsettings.json 文件添加连接字符串

.NET Core 微服务实例

在Startup.cs文件中注册上下文:

.NET Core 微服务实例

新建持久化层类:

IProductRepository.cs接口文件

.NET Core 微服务实例

ProductRepository 实现类:

.NET Core 微服务实例

在Startup.cs注册仓储类:

.NET Core 微服务实例

新建API控制器:

ProductController:

.NET Core 微服务实例

在控制器中添加GET/POST 方法

.NET Core 微服务实例

EF迁移:

在程序包管理器控制台 输入Add-Migration InitialCreate 成功后再输入命令Update-Database将变动写入数据库
.NET Core 微服务实例

.NET Core 微服务实例

命令执行完毕后可进入数据库检查我们在初始化加入的数据。若数据存在则证明迁移完成。此时把程序部署在IIS上即可执行。利用Postman则可调用接口进行验证。

更详细信息科参考原文地址:https://www.c-sharpcorner.com/article/microservice-using-asp-net-core/