Ocelot.json完整配置文件

时间:2020-05-07 22:11:37   收藏:0   阅读:451
{
  "ReRoutes": [
    {
      //万能模板配置方法:UpstreamPathTemplate 与DownstreamPathTemplate 设置为 “/{url}”
      //万能模板即所有请求全部转发,万能模板的优先级最低,只要有其它的路由模板,其它的路由模板则会优先生效

      //下游服务路由模板
      "DownstreamPathTemplate": "/api/post/{postId}",
      //下游服务http schema
      "DownstreamScheme": "http",
      //下游服务的地址,如果使用LoadBalancer的话这里可以填多项
      "DownstreamHostAndPorts": [
        {
          "Host": "192.168.1.37",
          "Port": 80
        },
        {
          "Host": "192.168.1.38",
          "Port": 80
        }
      ],
      //上游也就是用户输入的请求Url模板
      "UpstreamPathTemplate": "/post/{postId}",
      //优先级
      "Priority": 0,
      //上游请求http方法,可使用数组
      "UpstreamHttpMethod": [
        "GET",
        "POST",
        "PUT",
        "DELETE"
      ],
      //上游Host
      //"UpstreamHost": "api.test.com",
      /**
       * 负载均衡的算法:
       * LeastConnection – 将请求发往最空闲的那个服务器
       * RoundRobin – 轮流发送
       * NoLoadBalance – 总是发往第一个请求或者是服务发现
       */
      "LoadBalancer": "LeastConnection"
      //用于请求聚合的标识
      //"Key": "RouteKey"
    }
  ],
  /**
   * 聚合服务目前只支持返回json
   * 目前只支持Get方式请求下游服务
   * 任何下游的response header并会被丢弃
   * 如果下游服务返回404,聚合服务只是这个key的value为空,它不会返回404
   */
  //"Aggregates": [
  //  {
  //    "ReRouteKeys": [
  //      "RouteKey"
  //    ],
  //    "UpstreamPathTemplate": "/"
  //  }
  //],
  //限流
  "RateLimitOptions": {
    //白名单
    "ClientWhitelist": [],
    //是否启用限流
    "EnableRateLimiting": true,
    //统计时间段:1s, 5m, 1h, 1d
    "Period": "1s",
    //多少秒之后客户端可以重试
    "PeriodTimespan": 1,
    //在统计时间段内允许的最大请求数量
    "Limit": 1
  },
  //熔断
  "QoSOptions": {
    //允许多少个异常请求
    "ExceptionsAllowedBeforeBreaking": 3,
    //熔断的时间,单位为秒
    "DurationOfBreak": 5,
    //如果下游请求的处理时间超过多少则自如将请求设置为超时
    "TimeoutValue": 5000
  },
  "GlobalConfiguration": {
    //外部暴露的Url
    "BaseUrl": "https://api.mybusiness.com",
    //限流扩展配置
    "RateLimitOptions": {
      //Http头  X-Rate-Limit 和 Retry-After 是否禁用
      "DisableRateLimitHeaders": false,
      //当请求过载被截断时返回的消息
      "QuotaExceededMessage": "请求超出最大限制!",
      //当请求过载被截断时返回的http status
      "HttpStatusCode": 999,
      //用来识别客户端的请求头,默认是 ClientId
      "ClientIdHeader": "ClientId"
    }
  }
}

 

原文:https://www.cnblogs.com/zhao-yi/p/12845642.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!