I am currently investigating possible solutions for flexible load balancing of a streaming application. I will have several nodes running the application that will process and stream content to the users. Documents are spread among any number of servers such that a single machine is responsible for serving requests to the set of documents it hosts.
Thus, I need some kind of broker that knows on which server the requested document resides and that does a forward to that server. I do NOT want to use some HttpConnection
from the broker and then include the response of that http call into the response of the original request (this will obviously be a bottleneck).
So my question is: How can I forward a request to another server after having analyzed the requests data (POST
/GET
params, headers or whatever) and determined the destination server?
Is there already a good load balancer out there that allows me to use some form of hooks to provide the logic of how to determine destination servers (round robin will obviously not work)?
I want to use Tomcat or something similar to host the streaming application and use only the fundamental servlet stack. Any hints to tools or patterns are appreciated.
Thanks