[译]Ocelot

原文

Ocelot支持对上游做访问限流,这样就可以保证下游不要负载太大了。

如果要启用访问限流,需要做如下配置:

"RateLimitOptions": {
    "ClientWhitelist": [],
    "EnableRateLimiting": true,
    "Period": "1s",
    "PeriodTimespan": 1,
    "Limit": 1
}
  • ClientWhitelist - 是和客户端白名单的数组。白名单里面的客户不受限流的限制。
  • EnableRateLimiting - 是否启用限流
  • Period - 标识限流作用于的时间段, 例如: 1s, 5m, 1h,1d 等。如果在这个时间段内访问的次数超过了限制,需要等PeriodTimespan这么久才能再次发起请求。
  • PeriodTimespan - 单位为秒,这个值标识要多少秒后才能重试。
  • Limit - 标识在指定的Period时间段里面最大能请求多少次。

可以在GlobalConfiguration里面做如下配置:

"RateLimitOptions": {
  "DisableRateLimitHeaders": false,
  "QuotaExceededMessage": "Customize Tips!",
  "HttpStatusCode": 999,
  "ClientIdHeader" : "Test"
}
  • DisableRateLimitHeaders - 是否在响应的请求头里面包含X-Rate-LimitRety-After
  • QuotaExceededMessage - 设置超过限制的提示语。
  • HttpStatusCode - 超过限制时的Http状态码。
  • ClientIdHeader - Allows you to specifiy the header that should be used to identify clients. By default it is “ClientId”
原文地址:https://www.cnblogs.com/irocker/p/ocelot-ratelimiting.html