2012-03-29 6 views
1

Ich arbeite an einer Anwendung, die eine Reihe von Webapps (als Agent bezeichnet), die auf Tomcat 7 ausgeführt wird, auf verschiedenen Knoten konfiguriert ist. Ich wurde beauftragt, diese Webapps (Agenten) automatisch zu entdecken. Die Idee ist, dass jede Webapp (sagen wir Agent X) einmal ein "Anfrage-Muster" an alle anderen Webapps übermitteln wird. Andere Webapps (sagen die Agenten A, B, C) wiederum speichern diese Information ("Anfrage-Muster") und werden diese verwenden, um irgendeine übereinstimmende Anfrage an den Agenten X unter Verwendung von http-Anruf weiterzuleiten. Ich suche nach einer Option, bei der in jeder Webanwendung eine bestimmte Komponente einen bestimmten Port überwacht und der Agent X während der Registrierung selbst eine Multicast-Anforderung an alle Knoten an diesem bestimmten Port sendet.
Ich denke, Apache Kamel könnte hier nützlich sein .. aber ich bin mir nicht sicher. Es wird großartig sein, wenn irgendein Körper die technische Durchführbarkeit dieses Ansatzes oder irgendwelche anderen Vorschläge erklären kann.Multicast (oder ähnliche) Lösung für Tomcat/Servlet erforderlich.

Antwort

0

Mein erster Gedanke war, dass Sie Apache httpd und den mod_proxy_loadbalancer verwenden können, um alle Anfragen über die verfügbaren Knoten auszugleichen. Sie können für jede Art von Agenten verschiedene Balancer definieren. Anforderungen werden an den Balancer gesendet und der Balancer leitet sie an jeden verfügbaren Knoten weiter.

+0

Dank @magomi. Hier geht es nicht nur um Load Balancing, sondern verschiedene Requests sollen basierend auf dem ursprünglich übergebenen "Request Pattern" an verschiedene Webapps (Agenten) gesendet werden. – phoneynk

+0

RequestPatterns könnten in der Apache-Konfiguration für einen bestimmten Balancer definiert werden. Die Idee mit Apache war nur ein kurzer Gedanke. :) (BTW - vielleicht sollten Sie Ihre Homepage phone nk.com überprüfen) – magomi

+0

Dank @magomi. Hier geht es nicht nur um Load Balancing, sondern verschiedene Requests sollen basierend auf dem ursprünglich übergebenen "Request Pattern" an verschiedene Webapps (Agenten) gesendet werden. Nehmen wir an, Agent X ist für die Bearbeitung der 'Bestellung' -Anfrage zuständig, und sobald er gestartet wird, kommuniziert er mit allen anderen Webapps, dass der X-Agent die 'Bestell'-Anfrage bearbeiten kann, dann wird nur' Bestell'-Art der Anfrage gesendet. Auch ich suche nach einer Lösung, die Java und verwandte Technologien verwendet. – phoneynk

0

Dies ist eher eine Nachricht als ein Routing-Problem. Fügen Sie Camel hinzu, wenn Sie komplexes Routing benötigen oder sich an Legacy-Protokolle anpassen müssen.

Dies sieht wie ein klassischer Anwendungsfall zum Veröffentlichen und Abonnieren aus. Sie können dies mit jeder Messaging-Technologie tun. Schauen Sie sich JMS an - ActiveMQ ist was Camel verwendet, oder AMQP - Ich habe RabbitMQ sehr erfolgreich dafür verwendet, beide verwenden das "Topic" -Paradigma dafür, eine schnelle Suche hat dies als Beispiel gefunden: http://jmsexample.zcage.com/index2.html. Oder Jabber.

Julian

Verwandte Themen