zoukankan      html  css  js  c++  java
  • Ocelot.json完整配置文件

    {
      "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"
        }
      }
    }
  • 相关阅读:
    scikit-learn机器学习(四)使用决策树做分类
    从最大似然到EM算法浅解
    scikit-learn机器学习(三)多项式回归(二阶,三阶,九阶)
    一个打印调试信息的样例
    AppFuse 3的乱码问题
    垂直和水平居中方法小结
    Hero In Maze
    Highmaps的天津地图数据JSON格式
    互联网公司面试中常常被问的问题
    MySQL(6)--复制,docker容器中
  • 原文地址:https://www.cnblogs.com/zhao-yi/p/12845642.html
Copyright © 2011-2022 走看看