关于微服务,MSDN给出了定义和架构图:https://docs.microsoft.com/zh-cn/azure/architecture/guide/architecture-styles/microservices
Management. 管理组件负责将服务放置在节点上、标识故障、跨节点重新平衡服务等等。
Identity Provider. 分布式验证服务提供者。
Service Discovery. 维护一个包含服务及其所在节点的列表。 支持使用服务查找功能查找服务的终结点。
API Gateway. API 网关是客户端的入口点。 客户端不直接调用服务, 而是调用 API 网关,网关再将调用转发到后端上的相应服务。 API 网关可以聚合来自多个服务的响应,并返回聚合的响应。
CDN. 内容分发服务网络。
Static Content 静态内容
传统架构对比微服务架构:
可见:微服务架构更适合DDD建模开发。比传统架构更独立,功能划分更明显。每个服务块都运行在自己的独立空间内,相互不干扰。各模块之间的通信利用消息队列完成。甚至数据库都可以是各自独立。
项目实例:
新建.NET Core项目
1.新建项目
2.选择API项目
添加数据模型:
1.添加Model文件夹,同时添加Product和Category类
添加EF Core
从引用中管理Nuget包。添加EFCore的引用。Microsoft.EntityFrameworkCore
引用以后新增DBContext文件夹并添加ProductContext上下文类
重写OnModelCreating方法初始化数据:
在appsettings.json 文件添加连接字符串
在Startup.cs文件中注册上下文:
新建持久化层类:
IProductRepository.cs接口文件
ProductRepository 实现类:
新建API控制器:
ProductController:
在控制器中添加GET/POST 方法
EF迁移:
在程序包管理器控制台 输入Add-Migration InitialCreate 成功后再输入命令Update-Database将变动写入数据库
命令执行完毕后可进入数据库检查我们在初始化加入的数据。若数据存在则证明迁移完成。此时把程序部署在IIS上即可执行。利用Postman则可调用接口进行验证。
更详细信息科参考原文地址:https://www.c-sharpcorner.com/article/microservice-using-asp-net-core/