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”
如需转载,请在显眼处标明本文链接,谢谢。