Hello guys, we are trying out the RateLimit functi...
# http4k
r
Hello guys, we are trying out the RateLimit functionality and we can’t get it work as we expected. Here is how we set up the client:
Copy code
private fun client(uri: Uri): HttpHandler =
    SetBaseUriFrom(uri)
        .then(RateLimit())
        .then(OkHttp(okHttpClient(100)))
Note: It’s using the default RateLimitConfig which is documented as
By default, handles maximum of 50 requests per 5 seconds.
Here is how we are testing this out:
Copy code
fun main(){
    val timeTaken = measureTimeMillis {
        makeMultipleRequests(51, client(Uri.of("<http://localhost:3002/some-url>")))
    }
    println(timeTaken)
}
I would expect the time taken to be greater than 5 seconds? Is this is how it’s suppose to work? Running it a few times to get an average it seems to complete in around 2-3 seconds. Thanks in advance
d
hey. it's been a while since I used the rate limiter, but I think the best bet for this is to check out the resilience4j docs as that's the underlying library that we're using
we just delegate down to it so any quirks will be those of the lib: https://github.com/resilience4j/resilience4j
r
OK thanks for this, just to be sure the way the client is set up with the filters, does that look correct to you?
d
yep - it's all pretty simple - not much to hide! 🙂
but let us know how you get on 🙂