关于微服务,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 实现类:

在Startup.cs注册仓储类:

新建API控制器:

ProductController:

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

EF迁移:

在程序包管理器控制台 输入Add-Migration InitialCreate 成功后再输入命令Update-Database将变动写入数据库

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

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

.NET Core 微服务实例的更多相关文章

  1. .NET Core微服务之基于Consul实现服务治理

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Consul基础介绍 Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发 ...

  2. .NET Core微服务之基于Consul实现服务治理(续)

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 上一篇发布之后,很多人点赞和评论,不胜惶恐,这一篇把上一篇没有弄到的东西补一下,也算是给各位前来询问的朋友的一些回复吧. 一.Consul ...

  3. .NET Core微服务之服务间的调用方式(REST and RPC)

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.REST or RPC ? 1.1 REST & RPC 微服务之间的接口调用通常包含两个部分,序列化和通信协议.常见的序列化 ...

  4. .NET Core微服务之基于Polly+AspectCore实现熔断与降级机制

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.熔断.降级与AOP 1.1 啥是熔断? 在广义的解释中,熔断主要是指为控制股票.期货或其他金融衍生产品的交易风险,为其单日价格波动幅度 ...

  5. .NET Core微服务之基于Ocelot+Butterfly实现分布式追踪

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.什么是Tracing? 微服务的特点决定了功能模块的部署是分布式的,以往在单应用环境下,所有的业务都在同一个服务器上,如果服务器出现错 ...

  6. .NET Core微服务之基于EasyNetQ使用RabbitMQ消息队列

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.消息队列与RabbitMQ 1.1 消息队列 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更 ...

  7. .NET Core微服务之基于MassTransit实现数据最终一致性(Part 1)

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.预备知识:数据一致性 关于数据一致性的文章,园子里已经有很多了,如果你还不了解,那么可以通过以下的几篇文章去快速地了解了解,有个感性认 ...

  8. .NET Core微服务之基于MassTransit实现数据最终一致性(Part 2)

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.案例结构与说明 在上一篇中,我们了解了MassTransit这个开源组件的基本用法,这一篇我们结合一个小案例来了解在ASP.NET C ...

  9. .NET Core微服务之开源项目CAP的初步使用

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.CAP简介 下面的文字来自CAP的Wiki文档:https://github.com/dotnetcore/CAP/wiki CAP ...

随机推荐

  1. vue学习好文连接

    1.什么是虚拟dom(VNode)? https://github.com/answershuto/learnVue/blob/master/docs/VNode%E8%8A%82%E7%82%B9. ...

  2. sql优化使用技巧

    1.LIMIT 语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引. ...

  3. ETL hive update 之 deltamerge 优化

    full join 横向join ,不能map join 走shuffle row_number() over ( partition by 主键 order by $flag desc) rank ...

  4. thinkPHP nginx无论怎样访问都会访问index方法解决

    修改项目配置文件 application/config.php中的 pathinfo_fetch的末尾增加 REQUEST_URI 详情参考:https://www.colabug.com/35205 ...

  5. UICollectionView didSelectItemAtIndexPath实现方法

    didSelectItemAtIndexPath是通过UIResponder的四个touch方法实现的(touchBegan, touchMove, touchEnd, touchCancel),因此 ...

  6. MySQL 还原

    ## sql 还原:mysql -default-character-set=utf8 -h127.0.0.1 -uroot -pxxxxxx test2 < /data/test/db/201 ...

  7. jpa table主键生成策略

    用 table 来生成主键详解 它是在不影响性能情况下,通用性最强的 JPA 主键生成器.这种方法生成主键的策略可以适用于任何数据库,不必担心不同数据库不兼容造成的问题. initialValue不起 ...

  8. Functional Language

    1.What is functional language? 函数式语言(functional language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定 ...

  9. ElasticSearch 使用问题

    1.设置空格分词器 PUT /my_index/my_type/_mapping { "my_type": { "_all": { "analyzer ...

  10. JAVA WEN开发环境与搭建

    一.下载安装JDK1.配置jdk开发环境JAVA_HOME 2.path 二.下载安装eclipse javaEE版本 三.安装部署tomcat3.1.安装: 直接解压到指定目录即可.(注:目录不要太 ...