marcosbarbero/spring-cloud-zuul-ratelimit

General Question for better understanding

akshaydk-buku opened this issue · 10 comments

  1. What kind of rate limiting algorithm is being leveraged here? (Ex. Token Bucket, Sliding Window etc)
  2. If we go with Redis as our data storage, does it come with the feature of distributed locking?
  3. If not, how do we enable the same since persisting the rate limit headers are not within our reach?
  4. Is client side rate limiting also possible?
  5. If let's say a particular IP/host has to be blacklisted, is there a way we could just enable it on the fly and avoid manual reboot by reconfiguring rate limit properties of Zuul api gateway service?

Best Regards,
Akshay

Hello @akshaydk-buku, thanks for getting in touch, we will get back to you asap! If you have issues in the 1.x.x.RELEASE line we recommend you to update to the latest version, unfortunately this line is not supported anymore.

@marcosbarbero any update on this please?

@lchayoun please review

I'm sorry for the delay, I'm currently on a road trip and have very limited internet connection.

I will get back to you early next week.

Sure. have few more questions around this
have created a separate issue for the same.
#510
Please have a look at the above

@marcosbarbero @lchayoun any update on this?

Hi @akshaydk-buku sorry for the long time to get back to you, I'll try to answer your questions here:

  1. What kind of rate-limiting algorithm is being leveraged here? (Ex. Token Bucket, Sliding Window etc)

It uses Token Bucket.

  1. If we go with Redis as our data storage, does it come with the feature of distributed locking?

It depends entirely on how you configure your Redis cluster.

  1. Is client-side rate limiting also possible?

This library only does server-side rate limiting.

  1. If let's say a particular IP/host has to be blacklisted, is there a way we could just enable it on the fly and avoid manual reboot by reconfiguring rate limit properties of Zuul api gateway service?

This library relies on Spring Boot's Autoconfiguration and its ability to refresh configuration on the fly.

Hi @marcosbarbero Thanks for you reply.

However, we're not using Spring Cloud Config Server and rather are fetching configuration properties from AWS SSM.

As soon as you use a refresh strategy supported by Spring Boot, it will work using this project as well.

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 1 day