2016-05-04 14 views
0

Gibt es eine Möglichkeit, eine Topologie mit ActiveMQ zu implementieren, wobei P ein Publisher ist, s_a ist ein Abonnent von Service A und s_b1 und s_b2 sind Abonnenten von Service B. Die Letztere werden in einem Cluster für den Lastausgleich eingestellt (also erhält s_b1 oder s_b2 eine Nachricht, aber nicht beide).ActiveMQ - Kombination von Publish-Subscribe und Peer-to-Peer

Gibt es eine Möglichkeit, Publish-Subscribe mit einem Peer-to-Peer-Messaging zu kombinieren, sodass einer der Abonnenten eine Warteschlange ist, in der zwei Konsumenten zuhören?

Danke,

Gil

Antwort

2

Ja, das getan werden kann.

Sie möchten vielleicht Apache ActiveMQ Artemis betrachten, die JMS 2.0 implementiert und unterstützen, was Sie aus der Box fordern. Mit JMS 2.0 können mehrere Abonnenten pro Thema einen Cluster auslasten. Für ActiveMQ und JMS 1.0 können Sie stattdessen Virtual Destinations verwenden. Sie arbeiten mit Namenskonventionen.

Wenn Sie Ihr Thema benennen: VirtualTopic.StockPrice und Nachrichten veröffentlichen, können Sie aus Warteschlangen mit den Namen Consumer.Consumer1.VirtualTopic.StockPrice, Consumer.Consumer2.VirtualTopic.StockPrice usw. konsumieren. Consumer1 kann alles sein.

Sie können ActiveMQ so konfigurieren, dass andere Namen für virtuelle Ziele verwendet werden (Präfix, Suffix usw.).