我有负载均衡器问题。我读过的所有负载均衡器配置示例都检查了客户端数据,并将所有负载均衡路由决策基于此。我有一个不同的问题。我需要让应用服务器告诉负载均衡器他现在正在提供特定的URL。
背景
我有大约10000个连接到tomcat服务器的硬件设备(通过二进制TCP协议)。 tomcat服务器还为希望与这些设备通信的客户提供http。
我不知道硬件设备何时连接(并且我无法在连接上识别它们)但是我想要来自客户端的所有http请求,这些请求指向该设备,在设备之后转到该tomcat-server有联系。硬件设备由循环dns进行负载平衡。
问题:
是否有任何好的http负载均衡器我可以让tomcat服务器说“嘿,id xxx的设备刚刚连接,请将所有流量重定向到这个设备给我”? http请求很容易识别。它们在请求URL中具有设备的ID。
有关负载均衡器或谷歌查询的任何建议都将不胜感激。
答案 0 :(得分:1)
你有趣的问题。我遇到了和你一样的问题,但我使用的是jboss AS 7而不是tomcat。但是,原则或多或少相同。
我们通过使用带有mod_cluster的apache解决了这个问题,它允许tomcat或jboss服务器注册它可用于负载均衡器的上下文。负载均衡器将确定哪个应用服务器具有上下文并将流量路由到它。
有许多关于如何在线完成此操作的教程,这是一个很好的例子。
答案 1 :(得分:1)
对于原始问题,我认为您不是在寻找负载均衡器,而只是一个简单的反向代理,它必须是动态的。 使用mod_rewrite查看Apache httpd mod_proxy。对于动态部分,也许你的tomcats可以在sqldb中注册它们连接的“冰箱”,在这种情况下使用RedriteMap和dbd。