Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http tomcat/servlet需要多播(或类似)解决方案。_Http_Tomcat_Servlets_Apache Camel_Multicast - Fatal编程技术网

Http tomcat/servlet需要多播(或类似)解决方案。

Http tomcat/servlet需要多播(或类似)解决方案。,http,tomcat,servlets,apache-camel,multicast,Http,Tomcat,Servlets,Apache Camel,Multicast,我正在开发一个应用程序,它是一组webapps(称为agent),运行在tomcat7上,配置在不同的节点上。我的任务是让这些网络应用(代理)自动发现彼此。其思想是,每个webapp(比如代理X)一旦启动,就会向所有其他webapp传递一个“请求模式”。其他Web应用程序(比如代理A、B、C)将依次存储此信息(“请求模式”),并使用这些信息使用http调用将任何匹配的请求路由到代理X。 我正在寻找一些选项,其中在每个webapp中都会有一些组件在特定端口上侦听,代理X在注册时会向该特定端口上的所

我正在开发一个应用程序,它是一组webapps(称为agent),运行在tomcat7上,配置在不同的节点上。我的任务是让这些网络应用(代理)自动发现彼此。其思想是,每个webapp(比如代理X)一旦启动,就会向所有其他webapp传递一个“请求模式”。其他Web应用程序(比如代理A、B、C)将依次存储此信息(“请求模式”),并使用这些信息使用http调用将任何匹配的请求路由到代理X。 我正在寻找一些选项,其中在每个webapp中都会有一些组件在特定端口上侦听,代理X在注册时会向该特定端口上的所有节点发送多播请求。
我认为ApacheCamel在这里可能很有用。。但我不确定。
如果有人能说出这种方法的技术可行性或任何其他建议,那就太好了。

我的第一个想法是,您可以使用apache httpd和mod_proxy_loadbalancer来平衡可用节点上的所有请求。您可以为任何类型的代理定义不同的平衡器。请求将被发送到平衡器,平衡器将把它路由到任何可用的节点。

这与其说是路由问题,不如说是消息传递问题。如果需要复杂的路由或适应遗留协议,请添加Camel

这看起来像一个经典的发布和订阅用例。您可以使用任何消息传递技术来实现这一点。看看JMS-ActiveMQ是Camel使用的,或者说AMQP-我在这方面非常成功地使用了RabbitMQ,两者都使用了“topic”范例,一个快速搜索发现了这个例子:。或者叽叽喳喳


朱利安

谢谢@magomi。这不仅仅是关于负载平衡,而是基于最初传递的“请求模式”向不同的WebApp(代理)发送不同的请求。可以在apache配置中为某个平衡器定义请求模式。使用apache的想法只是一个简单的想法(顺便说一句-也许你应该查看你的主页phoneynk.com)谢谢@magomi。这不仅仅是关于负载平衡,而是根据最初传递的“请求模式”向不同的Web应用程序(代理)发送不同的请求。假设代理X用于处理“订单”请求,那么一旦启动,它将与X代理可以处理“订单”请求的所有其他Web应用程序通信,然后只发送“订单”类型的请求。另外,我正在寻找使用Java和相关技术的解决方案。很抱歉我最后的评论[我是stackoverflow新手:(]我肯定会评估apache httpd,但如果有人能推荐一个“Java/tomcat”解决方案,那就太好了。(是的……我很久没有研究过phonynk.com的问题了)