Open nwoodthorpe opened 7 years ago
Hi there, a couple of suggestions here - I was looking at the possibility of starting a LB project, but there are a few which are already in active development. I feel I should provide some feedback from using LB systems at the small biz and enterprise level:
You need to have options for a health check of your targets, it can be:
Check for Open TCP Connection on Port - If port 80 is open on that IP, its healthy.
Load Web Page (Look for HTTP/200 - If not, its "down") - This is a bit better as if there is an error in the software, this will pull it out of the target pool.
Optional - Allow the user to specify a health-check URL and "look for text" via Regular Expression or just straight look, this would be useful for API's.
Logging:
It might be appropriate to have either a Web UI, or (if you want to stay minimal) an API Endpoint which can provide feedback on target health.
It isn't the job of the load balancer to do anything more than balance load, and your reporting should be in-line with the separation of duty, unless you wish to setup monitors for everything, then it may be a viable option.
Just some recommendations, for all its worth.
TODO: Figure out if this should be a responsibility of the load balancer.
If so, we should be able to temporarily disable a web server that's stopped responding, and also log this loudly so we can fix the web server.