Rate Limiter
A rate limiter for REST requests is a mechanism used to control the frequency at which clients can make requests to a RESTful API.
In other words, it limits the number of requests a client can make within a specified time interval, which helps prevent misuse or overloading the server.
In case the limiter gets overloaded, the 429 Too Many Requests
response status code is returned.
Configuration
The rate limiter is implemented using Resilience4j. To learn more about this library, see articles Guide to Resilience4j With Spring Boot and Resilience4j RateLimiter documentation.
Use these properties to control the behavior of the rate limiter:
-
resilience4j.ratelimiter.instances.apiRateLimit.limit-for-period
- Sets the maximum allowed number of operations within a defined time period. For example, if you set the value to10
, a user can perform a maximum of 10 operations within the time period specified by thelimit-refresh-period
property. -
resilience4j.ratelimiter.instances.apiRateLimit.limit-refresh-period
- Determines the time period after which the limit for the number of operations is refreshed. For example, if you set the value to1s
, the limit for the number of operations is refreshed every second. -
resilience4j.ratelimiter.instances.apiRateLimit.timeout-duration
- Specifies how long to wait for a request to be processed before it’s considered a failure. If this period elapses, the request is considered unsuccessful.
For a complete list of supported properties, refer to Resilience4j RateLimiter documentation.
In RDM, all requests sent to the REST API go through the rate limiter. This cannot be turned off.
However, if required, you can increase the default property values so that they are high enough to ensure the rate limiter does not get overloaded. Determine these values based on your typical usage of the REST API.
Was this page useful?