关于微服务,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. python对mysql进行简单操作

    python 连接MySQL数据库,进行简单操作 一.连接MySQL数据库,关闭连接 import pymysql db = pymysql.connect(host="xxx.xxx.x. ...

  2. java内存问题排查及分析

    最近了解了一下jdk对于jvm分析工具的使用,下面通过一个简单的列子介绍一下,以下内容部分来自其他帖子. 下面这段代码明显有问题(从网上抄的) import java.util.HashMap; im ...

  3. oracle填坑之PLSQL中文显示为问号

    刚入坑oracle就遇到个坑. 坑描述: 系统:Windows7 oracle:同时安装,11g和12c(安装顺序,先装的12c然后装的11g) 坑:开始安装的12c用SQL Developer使用本 ...

  4. Linux下Docker快速部署LAMP

    文章目录 拿来即用 获取LAMP LAMP版本 icoty1/lamp:v1.1.0制作过程 获取ubuntu基础镜像 安装依赖 mysql apache/php phpmyadmin 使apache ...

  5. mysql的基本操作笔记

    环境:已安装MySQL5.7.18,上一篇文章:Windows下安装MySQL5.7.18的方法 登录方式一: mysql -h 127.0.0.1 -u root -p -h:当连接MySQL服务器 ...

  6. B树与B+ 树

    本文转载自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html 维基百科对B树的定义为“在计算机科学中,B树 ...

  7. Teradata简介

    Teradata是受欢迎的关系数据库管理系统之一. 它主要适用于构建大规模数据仓库应用程序.Teradata通过并行性的概念实现了这一点. 它是由Teradata公司开发的. 无限并行化-  Tera ...

  8. 编译安装Python3

    转发https://www.cnblogs.com/resn/p/10135953.html 编译安装Python3 安装依赖 yum install -y ncurses-libs zlib-dev ...

  9. python request 请求https verify=False时warning

    import requests from requests.packages.urllib3.exceptions import InsecureRequestWarning requests.pac ...

  10. Cookie在前端读不到 多半是因为Cookie在服务器端的设置是HttpOnly 意味着只能在后台操作Cookie

    比如Shiro框架的 RememberMe Cookie 是不允许Js进行读写的 只能在服务器端通过同一个域的请求获得 import com.constantine.forum.exception.F ...