mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-04-22 06:22:50 +08:00
added basic rate limiting docs (#251)
This commit is contained in:
parent
04555dbb39
commit
18c34aa998
40
docs/features/ratelimiting.rst
Normal file
40
docs/features/ratelimiting.rst
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Rate Limiting
|
||||||
|
=============
|
||||||
|
|
||||||
|
Thanks to `@catcherwong article <http://www.c-sharpcorner.com/article/building-api-gateway-using-ocelot-in-asp-net-core-rate-limiting-part-four/>`_ for inspiring me to finally write this documentation.
|
||||||
|
|
||||||
|
Ocelot supports rate limiting of upstream requests so that your downstream services do not become overloaded. This feature was added by @geffzhang on GitHub! Thanks very much.
|
||||||
|
|
||||||
|
OK so to get rate limiting working for a ReRoute you need to add the following json to it.
|
||||||
|
|
||||||
|
.. code-block:: json
|
||||||
|
|
||||||
|
"RateLimitOptions": {
|
||||||
|
"ClientWhitelist": [],
|
||||||
|
"EnableRateLimiting": true,
|
||||||
|
"Period": "1s",
|
||||||
|
"PeriodTimespan": 1,
|
||||||
|
"Limit": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
ClientWhitelist - This is an array that contains the whitelist of the client. It means that the client in this array will not be affected by the rate limiting.
|
||||||
|
EnableRateLimiting - This value specifies enable endpoint rate limiting.
|
||||||
|
Period - This value specifies the period, such as 1s, 5m, 1h,1d and so on.
|
||||||
|
PeriodTimespan - This value specifies that we can retry after a certain number of seconds.
|
||||||
|
Limit - This value specifies the maximum number of requests that a client can make in a defined period.
|
||||||
|
|
||||||
|
You can also set the following in the GlobalConfiguration part of configuration.json
|
||||||
|
|
||||||
|
.. code-block:: json
|
||||||
|
|
||||||
|
"RateLimitOptions": {
|
||||||
|
"DisableRateLimitHeaders": false,
|
||||||
|
"QuotaExceededMessage": "Customize Tips!",
|
||||||
|
"HttpStatusCode": 999,
|
||||||
|
"ClientIdHeader" : "Test"
|
||||||
|
}
|
||||||
|
|
||||||
|
DisableRateLimitHeaders - This value specifies whether X-Rate-Limit and Rety-After headers are disabled.
|
||||||
|
QuotaExceededMessage - This value specifies the exceeded message.
|
||||||
|
HttpStatusCode - This value specifies the returned HTTP Status code when rate limiting occurs.
|
||||||
|
ClientIdHeader - Allows you to specifiy the header that should be used to identify clients. By default it is "ClientId"
|
@ -25,6 +25,7 @@ Thanks for taking a look at the Ocelot documentation. Please use the left hand n
|
|||||||
features/authentication
|
features/authentication
|
||||||
features/authorisation
|
features/authorisation
|
||||||
features/administration
|
features/administration
|
||||||
|
features/ratelimiting
|
||||||
features/caching
|
features/caching
|
||||||
features/qualityofservice
|
features/qualityofservice
|
||||||
features/headerstransformation
|
features/headerstransformation
|
||||||
|
Loading…
x
Reference in New Issue
Block a user