Open pavlo opened 6 years ago
I suppose an interface that could be implemented to determine replenish rate and burst capacity could be useful. I'm not keen on having folks extend the rate limiter.
@spencergibb What about an out-of-the-box implementation that allows to have different rate/burst limits per API key as @pavlo pointed out? I think it's a quite common use case.
Hey guys!
In order to be able to rate limit per user API key (versus basing the limit on the route) I had to extend
RedisRateLimiter
to makeisAllowed(String routeId, String apiKey)
calculate the limits based up on the route and theapiKey
. Please see the full thing here: https://stackoverflow.com/questions/50988095/rate-limiting-based-on-user-plan-in-spring-cloud-gatewayAs you see it is somewhat hackish there because there's no good way to extend
RedisRateLimiter
- see I had to decorate it, copy some private/default scoped methods over as well as hack the@Primary
annotation so it gets into the bean factory well.Do you think
RedisRateLimiter
would be re-architected to be easier to extend? Thanks!