Comments (7)
I don't believe that's possible to achieve in the current implementation
from spring-cloud-zuul-ratelimit.
I worked around this problem, but seems it's hard to integrate my solution to the current zuul-ratelimit inplementation.
What I did : created a rate limit checker in zuul filter by using "es.moki.ratelimitj", and defined a policy as below:
ratelimit:
repository: Redis
policy-list:
- service-name: service#1
limit: 5
refresh-interval: 1
sharable: false # can not be stolen
- service-name: service#2
limit: 6
refresh-interval: 1
sharable: false # can not be stolen
- service-name: service#2
limit: 4
refresh-interval: 1
sharable: true # can be stolen
from spring-cloud-zuul-ratelimit.
How did you do that?
I never used this ratelimitj
before
from spring-cloud-zuul-ratelimit.
It's totally a new implementation, but I did refer to your solution to define my policy and the limiting process. I would try to implement that by extending zuul-ratelimit after my busy project work finished.
My solution is simple: I leverage ratelimitj as a standalone limiter, and defined all the three limiters with ratelimitj. When a request comes in, firstly I checked the service name, and found the corresponding limiter that is not sharable. if the limiter is full, I will then look for another limiter that is sharable.
from spring-cloud-zuul-ratelimit.
Now I got it, based on that I'm sure there will be necessary some redesign in the actual implementation.
@lchayoun WDYT about this proposal?
from spring-cloud-zuul-ratelimit.
well, making two policies use the same allocation (limit / quota) should be easy enough by adding a property to the policy name
and in the other policies add a property that specify they consume the other policy quota.
But that not exactly what described here.
Making one policy overflow to another one as described will be harder but it also doable.
We can add a property to specify the overflow policy and on failure to consume try to take it from the other policy.
I think this request is a combination of those two capabilities
from spring-cloud-zuul-ratelimit.
I think if you overwrite filter(RateLimitPostFilter and
) , and do some thing for your customer implementation will control rate limit dynamically.
from spring-cloud-zuul-ratelimit.
Related Issues (20)
- Rate Limit for List of Users HOT 4
- JDK 8 compatibility HOT 6
- Rate Limit by multiple types : Origin and HTTP_HEADER HOT 1
- How to use url_pattern ? HOT 9
- url_pattern in v.2.42.0 HOT 2
- Consul repository not working with URL_PATTERN HOT 2
- Fix Travis-CI Integration
- High Performance degradation happen because of method synchronization HOT 3
- How do you pass REDIS configs for REDIS based ratelimit HOT 8
- URL Pattern key HOT 2
- Working example using bucket4j HOT 8
- Migrate from Travis CI to Circle CI HOT 1
- Visibility on the usage of Log4j HOT 1
- Recent Spring Boot Support? HOT 2
- General Question for better understanding HOT 10
- Configuration "zuul.ratelimit.enable=false" failed to start the service HOT 3
- Rate Limited consistently though refresh interval is crossed HOT 13
- Query regarding MatchType And breakOnMatch HOT 11
- How can set the zuul ratelimit filter for group of users other than the user with name xxxx HOT 2
- Not able to make policy with url_pattern HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spring-cloud-zuul-ratelimit.