2012-03-29 60 views
1

我正在研究一個應用程序,該應用程序被提議爲在不同節點上配置的在tomcat 7上運行的一組webapps(被稱爲代理程序)。我的任務是讓這些webapps(agent)自動發現彼此。這個想法是,每個Web應用程序(比如代理X)都會向所有其他Web應用程序傳達一個「請求模式」。其他Web應用程序(比如代理程序A,B,C)將依次存儲此信息('請求模式'),並使用這些信息通過http調用將任何匹配請求路由到代理程序X. 我正在尋找一些選項,其中每個webapp都有一些組件在特定端口上偵聽,並且代理X在註冊時將向多個端口上的所有節點發送多播請求。
我認爲apache駱駝可能在這裏有用..但我不確定。 如果有些機構能夠說出這種方法的技術可行性或任何其他建議,那將是非常好的。tomcat/servlet所需的多播(或類似)解決方案。

回答

0

我的第一個想法是,您可以使用Apache httpd和mod_proxy_loadbalancer來平衡可用節點上的所有請求。您可以爲任何種類的代理定義不同的平衡器。請求將發送給平衡器,平衡器將將其路由到任何可用節點。

+0

謝謝@magomi。這不僅僅是負載均衡,而是根據最初通過的'請求模式'發送不同的請求發送不同的webapps(代理)。 – phoneynk 2012-03-29 09:12:53

+0

可以在某個平衡器的apache配置中定義RequestPatterns。 與Apache的想法只是一個快速的想法。 :) (順便說一句 - 也許你應該檢查你的主頁phoneynk.com) – magomi 2012-03-29 09:16:30

+0

謝謝@magomi。這不僅僅是負載均衡,而是根據最初通過的'請求模式'發送不同的請求發送不同的webapps(代理)。假設代理X用於處理'訂單'請求,那麼一旦它啓動,它將與所有其他Web代理通信X代理可以處理'訂單'請求,然後只發送'訂單'類型的請求。另外我正在尋找使用Java和相關技術的解決方案。 – phoneynk 2012-03-29 09:19:37

0

這是一個比路由問題更多的消息。如果您需要複雜路由或適應傳統協議,請添加駱駝。

這看起來像一個經典的發佈和訂閱用例。您可以使用任何消息傳遞技術。看看JMS - ActiveMQ是Camel使用的還是AMQP - 我已經非常成功地使用了RabbitMQ,兩者都使用「主題」範例,快速搜索發現這是一個例子:http://jmsexample.zcage.com/index2.html。或者Jabber。

朱利安