Ocelot中文文档-流量控制(转)

原文地址:https://www.cnblogs.com/loogn/p/9007814.html

感谢@catcherwong 的文章激励我最终写出了这个文档

Ocelot支持上游的请求限制,以便您的下游服务不会过载。 此功能是由GitHub上的@geffzhang添加! 非常感谢。

好了,为了让ReRoute获得流量限制,你需要添加下面的json到ReRoute中。

"RateLimitOptions": {
    "ClientWhitelist": [],
    "EnableRateLimiting": true,
    "Period": "1s",
    "PeriodTimespan": 1,
    "Limit": 1
}
  • ClientWhitelist - 是一个包含客户端白名单列表的数组。这意味着在白名单里的客户端不受流量限制的影响。
  • EnableRateLimiting - 该值指定流量限制是否开启。
  • Period - 该值指定时间段,例如1s,5m,1h,1d等。
  • PeriodTimespan - 该值指定我们可以在一定的秒数后重试。
  • Limit - 该值指定一个客户端可以在定义的时间段(Period)内允许的最大请求数。

您还可以在ocelot.json的GlobalConfiguration部分中设置以下内容

"RateLimitOptions": {
  "DisableRateLimitHeaders": false,
  "QuotaExceededMessage": "Customize Tips!",
  "HttpStatusCode": 999,
  "ClientIdHeader" : "Test"
}
  • DisableRateLimitHeaders - 该值指定是否禁用X-Rate-Limit和Rety-After头。
  • QuotaExceededMessage - 该值指定超出限制时返回的消息。
  • HttpStatusCode - 该值指定超出限制时返回的HTTP状态代码。
  • ClientIdHeader - 允许您指定应该用于标识客户端的头。 默认是“ClientId”

 

posted @ 2018-06-07 17:28  snailteam  阅读(361)  评论(0编辑  收藏  举报