首页 > 其他分享 >二、.Net Core搭建Ocelot

二、.Net Core搭建Ocelot

时间:2022-10-31 16:58:40浏览次数:51  
标签:Core http 配置 GlobalConfiguration Ocelot Net 下游 路由

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

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

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

{    

    "ReRoutes": [],    

    "GlobalConfiguration": {}

}

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

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

 

4、修改Startup.cs注册服务

 

5、配置文件

 

{

  //全局配置

  "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 //下游端口号

        }

      ]

    }

  ]

}

Other

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

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

标签:Core,http,配置,GlobalConfiguration,Ocelot,Net,下游,路由
From: https://www.cnblogs.com/yangleiyu/p/16844894.html

相关文章

  • 【Kubernetes】K8s笔记(十四):PersistentVolume 使用网络共享存储(NFS)
    目录0.安装NFS服务器及客户端1.在Kubernetes中使用NFS存储卷2.动态存储卷Provisioner3.使用NFS动态存储卷要想让存储卷真正能被Pod任意挂载,我们需要变更存......
  • Solr 8.11入门教程(2)创建core
    新建core添加core命令添加使用命令比较简单~$bin/solrcreate-cmytest[core名称]这样就添加完了。CoreAdmin就可以看到了。手动添加手动添加相对复杂一些,需要提......
  • cuda cores
    基本介绍从这个link看的:https://www.techcenturion.com/nvidia-cuda-cores/其中,抽象上这里表述较好理解:LetusconsideranexampletounderstandtheworkingofCUDA......
  • Solr 8.11入门教程(2)创建core
    新建core添加core命令添加使用命令比较简单~$bin/solrcreate-cmytest[core名称]这样就添加完了。CoreAdmin就可以看到了。手动添加手动添加相对复杂一些,需要提前创建目......
  • Solr 8.11入门教程(2)新建core
    Solr8.11入门教程(2)新建core添加core命令添加使用命令比较简单~$bin/solrcreate-cmytest[core名称]这样就添加完了。CoreAdmin就可以看到了。手动添加手动......
  • Netlink通信机制 与 Generic netlink 数据解析
    一、Netlink通信机制Netlink是linux提供的用于内核和用户态进程之间的通信方式。但是注意虽然Netlink主要用于用户空间和内核空间的通信,但是也能用于用户空间的两个进程通......
  • Kubeadm部署Kubernetes
    Kubeadm部署Kubernetes1、环境准备主机名IP说明宿主机系统k8s-master10.0.0.101Kubernetes集群的master节点Ubuntu2004k8s-node110.0.0.102Kubernetes集群的node节点Ubuntu2......
  • C# .NET 常见DeepCopy 深度拷贝的性能对比
    先上结论MethodMeanErrorStdDevGen0Gen1AllocatedJSONConvert2,273.02ns43.758ns52.091ns0.6599-4160BReflection1,009.13ns10.110ns8.4......
  • 乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 适用于Entity Framework Core
    什么是EFCoreCLI适用于EntityFrameworkCore的命令行接口(CLI)工具可执行设计时开发任务。例如,可以创建迁移、应用迁移,并为基于现有数据库的模型生成代码。获取EFCore......
  • 【C#进阶】.NET Core 中的筛选器 Filter
    官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/filters?view=aspnetcore-5.0 通过使用ASP.NETCore中的筛选器,可在请求处理管道中的特定阶......