-
Notifications
You must be signed in to change notification settings - Fork 842
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add more extensible/custom load balancers #106
Comments
Updated title to be clearer. |
Why these algorithms specifically? Have you had situations elsewhere that these were able to address?
If all this does is run a custom user callback then there are several other ways to do that like the new middleware model (#50). It's not clear that it gains anything by being integrated directly into the LoadBalancer.
The description sounds like a credit based LeastRequests strategy. I don't see any obvious benefits over the existing algorithms?
We expect to address this with health checks, retries, etc., not as part of load balancing.
Is this an abstract version of LeastBusy with a customizable score? It's hard to know how useful this would be without some examples of how the score might be calculated and if the right primitives are available to do that calculation.
Yes, we do need to figure that out. RoundRobin is the only one so far that's needed any state, and that ones one property. The ILoadBalancingStrategy abstraction I would hold off on until we worked out how you might flow such implementations and their configurations through the config system. |
I will hold off on it until then. |
When designing session affinity (#174) we worked out an extensibility model that we should be able to apply here as well. Here's a comparison for what it might look like:
ILoadBalancer would go away, LoadBalancingMiddleware would become responsible for resolving an Load balancing would also get it's own docs article that described how to select a policy, the available policies, and the extensibility mode. Out of scope: new load balancing strategies. For now we're concerned with providing the extensibility. |
What should we add or change to make your life better?
More load balancing strategies.
In short, I would like to:
Why is this important to you?
I would like to have more choices when I choose the load balancing strategy.
The scope would initially be:
I have submitted the algorithms described above (with passing tests). The ILoadBalacingStrategy interface has a single Balance method which takes as parameters the list of available endpoints and the load balancing options.
I am unsure how to handle the configuration for the algorithms. Right now I have added configuration to the BackEndConfig.BackEndLoadBalancingOptions, which felt a little odd. :-)
The text was updated successfully, but these errors were encountered: