美文网首页大数据可视化分析
Ocelot一款.NET下的API网关介绍

Ocelot一款.NET下的API网关介绍

作者: NBI大数据可视化分析 | 来源:发表于2019-06-29 13:59 被阅读4次

    前言

    在当前微服务技术盛行的年代,大家都在大谈特谈微服务架构,api网关等等配套技术,但是我们发现,大多都是java系的一些技术,那咋们.NET系难道没有吗?那今天就给大家介绍一款ap网关框架:Ocelot

    什么是网关

    API网关—— 它是系统的暴露在外部的一个访问入口。这个有点像代理访问的家伙,就像一个公司的门卫承担着寻址、限制进入、安全检查、位置引导、等等功能。

    什么是Ocelot

    Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成,下面我们会对这些功能的配置一一进行说明。

    Ocelot的实现原理

    简单的来说Ocelot是一堆的asp.net core middleware组成的一个管道。当它拿到请求之后会用一个request builder来构造一个HttpRequestMessage发到下游的真实服务器,等下游的服务返回response之后再由一个middleware将它返回的HttpResponseMessage映射到HttpResponse上。

    Ocelot基本使用

    在项目中通过Nuget命令添加Install-Package Ocelot

    首先在.Net工程中添加一个ocelot.json文件

    在启动类中加载配置文件:

    先指定Oclot的对外服务访问的地址和端口号

    接下来才是Ocelot的核心配置:

    {

    "DownstreamPathTemplate": "/",

    "UpstreamPathTemplate": "/",

    "UpstreamHttpMethod": [

    "Get"

    ],

    "AddHeadersToRequest": {},

    "AddClaimsToRequest": {},

    "RouteClaimsRequirement": {},

    "AddQueriesToRequest": {},

    "RequestIdKey": "",

    "FileCacheOptions": {

    "TtlSeconds": 0,

    "Region": ""

    },

    "ReRouteIsCaseSensitive": false,

    "ServiceName": "",

    "DownstreamScheme": "http",

    "DownstreamHostAndPorts": [

    {

    "Host": "localhost",

    "Port": 51876,

    }

    ],

    "QoSOptions": {

    "ExceptionsAllowedBeforeBreaking": 0,

    "DurationOfBreak": 0,

    "TimeoutValue": 0

    },

    "LoadBalancer": "",

    "RateLimitOptions": {

    "ClientWhitelist": [],

    "EnableRateLimiting": false,

    "Period": "",

    "PeriodTimespan": 0,

    "Limit": 0

    },

    "AuthenticationOptions": {

    "AuthenticationProviderKey": "",

    "AllowedScopes": []

    },

    "HttpHandlerOptions": {

    "AllowAutoRedirect": true,

    "UseCookieContainer": true,

    "UseTracing": true

    },

    "UseServiceDiscovery": false

    }

    配置属性说明:

    Downstream是下游服务配置

    UpStream是上游服务配置

    Aggregates 服务聚合配置

    ServiceName, LoadBalancer, UseServiceDiscovery 配置服务发现

    AuthenticationOptions 配置服务认证

    RouteClaimsRequirement 配置Claims鉴权

    RateLimitOptions为限流配置

    FileCacheOptions 缓存配置

    QosOptions 服务质量与熔断

    DownstreamHeaderTransform头信息转发

    演示一个基本路由配置:

    ReRoutes:是一个数组,里面包含了多组路由配置;

    DownstreamPathTemplate:下游服务的真实地址;

    DownstreamScheme:请求协议

    DownstreamHostAndPorts:指定下游服务的ip,端口。这里可以配置负载均衡,比如下游服务应用横向部署在多台服务器上,这里非常方便的就可以做到负载均衡配置;

    UpstreamPathTemplate:对外服务的地址;

    UpstreamHttpMethod:配置请求方式;

    RateLimitOptions:限流配置

    EnableRateLimiting:限流开关

    Period:限流统计时间段

    PeriodTimespan:多长时间之后,用户可以再次访问

    Limit:最大允许访问次数

    好了,一个最基本的路由配置就完成了。

    其他的功能点后面再逐一介绍。

    相关文章

      网友评论

        本文标题:Ocelot一款.NET下的API网关介绍

        本文链接:https://www.haomeiwen.com/subject/iohpcctx.html