Ocelot.json完整配置文件


{
  "Routes": [
    {
      //服務名稱,開啟服務發現時需要配置
      "ServiceName": "",
      //下游服務路由模板
      "DownstreamPathTemplate": "/{url}",
      //下游服務http schema
      "DownstreamScheme": "http",
      //下游服務的地址,如果使用LoadBalancer的話這里可以填多項
      "DownstreamHostAndPorts": [
        {
          "Host": "192.168.1.205",
          "Port": 12001
        },
        {
          "Host": "192.168.1.205",
          "Port": 11001
        }
      ],
      "UpstreamPathTemplate": "/{url}",
      //上游請求http方法,可使用數組
      "UpstreamHttpMethod": [
        "GET",
        "POST",
        "PUT",
        "DELETE",
        "OPTIONS"
      ],
      /**
       * 負載均衡的算法:
       * LeastConnection        – 跟蹤哪些服務正在處理請求,並將新請求發送到具有最少現有請求的服務。算法狀態沒有分布在Ocelot集群中。
       * RoundRobin             – 遍歷可用服務並發送請求。算法狀態沒有分布在Ocelot集群中。
       * NoLoadBalancer          – 從配置或服務發現中獲取第一個可用服務
       * CookieStickySessions   - 使用cookie將所有請求粘貼到特定服務器
       */
      "LoadBalancerOptions": {
        "Type": "RoundRobin"
        //以下配置再設置了 CookieStickySessions 后需要開啟
        //用於粘性會話的cookie的密鑰
        //"Key": "ASP.NET_SessionId",
        //會話被阻塞的毫秒數
        //"Expiry": 1800000
      },
      //緩存
      "FileCacheOptions": {
        "TtlSeconds": 15
      },
      //限流
      "RateLimitOptions": {
        //包含客戶端白名單的數組。這意味着該陣列中的客戶端將不受速率限制的影響
        "ClientWhitelist": [],
        //是否啟用端點速率限制
        "EnableRateLimiting": true,
        //指定限制所適用的期間,例如1s,5m,1h,1d等。如果在該期間內發出的請求超出限制所允許的數量,則需要等待PeriodTimespan過去,然后再發出其他請求
        "Period": "1s",
        //指定可以在一定秒數后重試
        "PeriodTimespan": 1,
        //指定客戶端在定義的時間內可以發出的最大請求數
        "Limit": 1
      },
      //熔斷
      "QoSOptions": {
        //允許多少個異常請求
        "ExceptionsAllowedBeforeBreaking": 3,
        //熔斷的時間,單位為毫秒
        "DurationOfBreak": 1000,
        //如果下游請求的處理時間超過多少則自如將請求設置為超時
        "TimeoutValue": 5000
      },
      "HttpHandlerOptions": {
        //是否開啟路由追蹤
        "UseTracing": true
      }
    }
  ],
  "GlobalConfiguration": {
    //外部暴露的Url
    "BaseUrl": "http://localhost:13763",
    //限流擴展配置
    "RateLimitOptions": {
      //指定是否禁用X-Rate-Limit和Retry-After標頭
      "DisableRateLimitHeaders": false,
      //當請求過載被截斷時返回的消息
      "QuotaExceededMessage": "Oh,Oops!",
      //當請求過載被截斷時返回的http status
      "HttpStatusCode": 4421,
      //用來識別客戶端的請求頭,默認是 ClientId
      "ClientIdHeader": "ClientId"
    }
  }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM