ocelot

ASP.NET Core3.1 Ocelot路由

亡梦爱人 提交于 2020-11-06 23:57:03
  1.路由前一个章节我们已经介绍过Ocelot,相信大家也了解到,Ocelot的主要功能是接收客户端等传入的HTTP请求,并将其转发到下游服务。Ocelot当前仅以另一个http请求的形式支持此功能(将来可能是任何传输机制)。   Ocelot将一个请求路由到另一个请求。为了让Ocelot正常工作,您需要在配置中设置一个Route。下面我们就Ocelot基础项目构建简单介绍下路由功能。   2.Ocelot基础项目构建(APIGatewayBasicDemo)现在我们根据GitHub贡献者开源项目来学习Ocelot,根据下载下来Ocelot基础项目结构来看,我们能看到有一个网关项目(APIGateway),一个客户API项目(CustomersAPIServices),一个产品API项目(ProductsAPIServices)。如下图所示:      2.1Ocelot网关配置APIGateway网关项目根目录下面有一个configuration.json配置文件,内容如下:      {   //ReRoutes:处理上游请求的对象(客户端),每个数组{}就是配置:上游地址和对应下游地址   "ReRoutes": [   {   //以Downstream开头的,是要转发到下游服务器的地址(CustomersAPIServices),与nginx转发类似   /

Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(二)

可紊 提交于 2020-10-13 00:56:46
上文 已经介绍了Identity Service的实现过程。今天我们继续,实现一个简单的Weather API和一个基于Ocelot的API网关。 回顾 《 Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(一) 》 Weather API Weather API实现非常简单,直接用Visual Studio 2019 Community Edition自带的ASP.NET Core Web Application模板创建就行了,我们的目的不是为了实现Weather API的业务,我们只需要有一个能让IdentityServer4进行保护的API就行,以便能够完成我们的各种实验。 在原有的(也就是Identity Service所在的)解决方案中,新建一个ASP.NET Core Web Application,应用程序模板选择API,并禁用HTTPS和Docker支持,因为目前不需要,也不要启用任何Authentication机制,因为这部分功能会由Ocelot配合IdentityServer4实现。在完成创建之后,我们的Weather API就做好了。 现在,设置启动端口为5000,启动项目,然后通过curl测试API是否工作正常: curl http://localhost:5000/weatherforecast |

.NETCore微服务探寻(一)

▼魔方 西西 提交于 2020-10-02 23:43:49
前言 一直以来对于.NETCore微服务相关的技术栈都处于一个浅尝辄止的了解阶段,在现实工作中也对于微服务也一直没有使用的业务环境,所以一直也没有整合过一个完整的基于.NETCore技术栈的微服务项目。正好由于最近刚好辞职,有了时间可以写写自己感兴趣的东西,所以在此想把自己了解的微服务相关的概念和技术框架使用实现记录在一个完整的工程中,由于本人技术有限,所以错误的地方希望大家指出。\ 项目地址: https://github.com/yingpanwang/fordotnet/tree/dev 什么是Api网关 由于微服务把具体的业务分割成单独的服务,所以如果直接将每个服务都与调用者直接,那么维护起来将相当麻烦与头疼,Api网关担任的角色就是整合请求并按照路由规则转发至服务的实例,并且由于所有所有请求都经过网关,那么网关还可以承担一系列宏观的拦截功能,例如安全认证,日志,熔断 为什么需要Api网关 因为Api网关可以提供安全认证,日志,熔断相关的宏观拦截的功能,也可以屏蔽多个下游服务的内部细节 有哪些有名的Api网关项目 Zuul Spring Cloud 集成 Kong 一款lua轻量级网关项目 Ocelot .NETCore网关项目 Ocelot使用 1.通过 Nuget 安装 Ocelot 2.准备并编辑Ocelot配置信息 Ocelot.json { "ReRoutes":

.NET Core 下的 API 网关

只谈情不闲聊 提交于 2020-10-01 17:53:59
网关介绍 网关其实就是将我们写好的API全部放在一个统一的地址暴露在公网,提供访问的一个入口。在 .NET Core下可以使用 Ocelot 来帮助我们很方便的接入API 网关。与之类似的库还有 ProxyKit ,微软也发布了一个反向代理的库 YARP 。 关于网关的介绍不多说了,网上文章也挺多的,这些都是不错的选择,听说后期 Ocelot 将会使用 YARP 来重写。本篇主要实践一下在.NET Core环境下使用 Ocelot 。 Ocelot官网:https://threemammals.com/ocelot Ocelot文档:https://ocelot.readthedocs.io GitHub:https://github.com/ThreeMammals/Ocelot Ocelot资源汇总:https://www.cnblogs.com/shanyou/p/10363360.html 接入使用 接口示例 先创建几个项目用于测试,创建两个默认的API项目,Api_A和Api_B,在创建一个网关项目Api_Gateway,网关项目可以选择空的模板。 现在分别在Api_A和Api_B中写几个api,将默认的 WeatherForecastController 中返回模型 WeatherForecast 添加一个字段Source,用于区分是哪个API返回的数据。 using

.NET Core 微服务—API网关(Ocelot) 教程 [一]

不羁的心 提交于 2020-08-18 07:55:46
前言:    最近在关注微服务,在 eShop On Containers 项目中存在一个API网关项目,引起想深入了解下它的兴趣。     一、API网关是什么   API网关是微服务架构中的唯一入口,它提供一个单独且统一的API入口用于访问内部一个或多个API。它可以具有 身份验证,监控,负载均衡,缓存,请求分片与管理 ,静态响应处理等。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。 二、Ocelot简介    Ocelot 是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成 三、Ocelot工作流程   a) 基本集成:     根据configuration.json(后续文章会介绍详细内容)中配置内容,把接收所有的客户端请求,路由到对应的下游服务器进行处理,再将请求结果返回。而这个上下游请求的对应关系也被称之为路由。   b) 集成IdentityServer:   当我们涉及到授权认证的时候,我们可以跟Identity

.Net Core微服务入门全纪录(七)——IdentityServer4-授权认证

点点圈 提交于 2020-08-18 07:23:41
前言 上一篇【 .Net Core微服务入门全纪录(六)——EventBus-事件总线 】中使用CAP完成了一个简单的Eventbus,实现了服务之间的解耦和异步调用,并且做到数据的最终一致性。这一篇将使用IdentityServer4来搭建一个鉴权中心,来完成授权认证相关的功能。 IdentityServer4官方文档: https://identityserver4.readthedocs.io/ 鉴权中心 创建ids4项目 关于IdentityServer4的基本介绍和模板安装可以看一下我的另一篇博客【 IdentityServer4 4.x版本 配置Scope的正确姿势 】,下面直接从创建项目开始。 来到我的项目目录下执行: dotnet new is4inmem --name IDS4.AuthCenter 执行完成后会生成以下文件: 用vs2019打开之前的解决方案,把刚刚创建的ids项目添加进来: 将此项目设为启动项,先运行看一下效果: 项目正常运行,下面需要结合我们的业务稍微修改一下默认代码。 鉴权中心配置 修改Startup的ConfigureServices方法: // in-memory, code config builder.AddInMemoryIdentityResources(Config.IdentityResources); builder

.Net Core使用Ocelot网关(二) -鉴权认证

ε祈祈猫儿з 提交于 2020-08-17 18:39:43
前言 上一章已经简单的介绍了ocelot的使用了,但是网关暴露的接口如果什么人都能访问的话安全性就太低啦。所以我们需要去鉴权和认证。这里我们使用identityServer4给我们的网关来鉴权认证。 创建Identity服务 我们创建一个identity的服务来用于令牌的发放和鉴权。下图是我的项目结构。 Api_Gatewat端口:5000 Api_A端口:5001 Api_B端口:5002 IdentityServer端口:5003 通过nuget添加IdentityServer4的包,也可以通过程序包管理控制台执行以下命令 Install-Package IdentityServer4 。 添加一个Congif文件。 using System.Collections.Generic; using IdentityModel; using IdentityServer4; using IdentityServer4.Models; namespace IdentityServer { public static class Config { public static IEnumerable<IdentityResource> GetIdentityResourceResources() { return new List<IdentityResource> { new