• 二、.Net Core搭建Ocelot


    上一篇文章介绍了Ocelot的基本概念:https://www.cnblogs.com/yangleiyu/p/15043762.html

    本文介绍在.net core中如何使用ocelot。

     

    Ocelot是系统中对外暴露的一个请求入口,所有外部接口都必须通过这个网关才能向下游API发出请求

    1、Nuget引用Ocelot(注意版本,我用的是16.0.1)

    2、根目录添加配置文件Ocelot.json

    1
    2
    3
    4
    {   
        "ReRoutes": [],   
        "GlobalConfiguration": {}
    }

    说明:ReRoutes是一个数组,将会包含服务器的路由配置,GlobalConfiguration则是一个全局配置项。

    3、修改Program.cs,引用添加的配置文件

     

    4、修改Startup.cs注册服务

     

    5、配置文件

     配置如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    {
      //全局配置
      "GlobalConfiguration": {
        "BaseUrl": "http://192.168.50.118:8003/" //网关暴露的的地址。
      },
      //路由配置
      "routes": [
        {
          ///{url}转发所有
          //"UpstreamHost": "localhost:4023"转发特定服务
          "UpstreamPathTemplate": "/QiantoonService/Oam", //上游Api请求路由规则
          "DownstreamPathTemplate": "/QiantoonService/Oam/Oam", //网关转发到下游路由规则
          "UpstreamHttpMethod": [ "GET", "POST" ], //上下游支持请求方法
          "DownstreamScheme": "http", //下游服务配置
          "DownstreamHostAndPorts": [
            {
              "Host": "192.168.50.118", //下游地址
              "Port": 8001 //下游端口号
            }
          ]
        },
        {
          "UpstreamPathTemplate": "/QiantoonService/SelfReg", //上游Api请求路由规则
          "DownstreamPathTemplate": "/QiantoonService/SelfReg/SelfReg", //网关转发到下游路由规则
          "UpstreamHttpMethod": [ "GET", "POST" ], //上下游支持请求方法
          "DownstreamScheme": "http", //下游服务配置
          "DownstreamHostAndPorts": [
            {
              "Host": "192.168.50.118", //下游地址
              "Port": 8002 //下游端口号
            }
          ]
        }
      ]
    }

    其他说明:

    GlobalConfiguration,它是一个全局配置项,通常我们都要在这个配置项中添加一个属性BaseUrl,BaseUrl就是Ocelot服务对外暴露的Url。

    "GlobalConfiguration": {"BaseUrl": "http://localhost:4727"}

    ReRoutes是一个数组,其中的每一个元素代表了一个路由,而一个路由所包含的所有可配置参数如下:

    复制代码
    {    
        "DownstreamPathTemplate": "/",    
        "UpstreamPathTemplate": "/",    
        "UpstreamHttpMethod": 
        [        
            "Get"
        ],    
        "AddHeadersToRequest": {},    
        "AddClaimsToRequest": {},    
        "RouteClaimsRequirement": {},    
        "AddQueriesToRequest": {},    
        "RequestIdKey": "",    
        "FileCacheOptions": 
        {        
            "TtlSeconds": 0,        
            "Region": ""
        },    
        "ReRouteIsCaseSensitive": false,    
        "ServiceName": "",    
        "DownstreamScheme": "http",    
        "DownstreamHostAndPorts": 
        [
            {            
            "Host": "localhost",            
            "Port": 8001,
            }
        ],    
        "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 头信息转发配置

    注意

    配置文件中“routes”关键字为新版本,旧版本关键字为“ReRoutes

    此处巨坑,小杨被坑了半天

  • 相关阅读:
    部分依赖图(Partial Dependence Plots)以及实战-疾病引起原因解释
    直播电商系统
    js:Browserslist用特定语句查询浏览器列表的工具与Babel和Postcss配置使用
    乘积尾零(Java详解)
    指针(四)- 函数指针和回调函数
    树型结构和二叉树的概念及特性
    【Excel函数】关联匹配函数Lookup
    计网自顶向下(Web服务器+UDPping+邮件客户端)
    最佳实践-SQL语法校验
    八数码问题
  • 原文地址:https://www.cnblogs.com/yangleiyu/p/16847439.html