Gibt es irgendwelche MQ-Server ausgeführt werden können, eingebettet in eine Java-Prozess?
Ich bin die Erforschung queuing-Lösungen für eines meiner Teams-apps. Idealerweise würden wir gerne etwas, das kann so konfiguriert werden beide als eine leichte, in-process-broker (für geringen Durchsatz von Nachrichten zwischen threads) und als externe broker. Gibt es eine MQ-server gibt, die dies tun können? Die meisten zu erfordern scheinen, dass das setup als eine externe Entität. ZeroMQ zu kommen scheint am nächsten zu einem in-Prozess-Lösung, aber es scheint mehr eine "UDP-socket auf Steroiden", und wir brauchen zuverlässige Lieferung.
- Ich denke, dass die Antworten auf stackoverflow.com/questions/2507536/lightweight-jms-broker enthalten interessante Infos (z.B. über den ffmq Anregung). ActiveMQ ist ein weiterer, wenn auch schwerer Kandidat, aber es ist auch integrierbar.
- Wie @fvu sagte, ActiveMQ ist ein bisschen schwerer als ZeroMQ, aber es funktioniert wirklich gut als embedded-Prozess. Und wenn Sie Frühling, es ist wirklich einfach zu set-up.
- ZeroMQ läuft unter anderem auf TCP (nicht UDP), welcher einen sicheren transport. Allerdings beziehen Sie sich auf eine beständige Warteschlange? I. e. gestützt auf Disk?
- Wir kümmern uns nicht um das verharren der Nachrichten, die pro-se, aber wir wollen, dass die Lieferung so zuverlässig wie möglich. Leistung ist kein Problem (noch nicht). Ich nehme an, das bedeutet, dass die Warteschlange persistent sein soll.
- Vielen Dank für den input, ich werde mit ActiveMQ. Konnte Sie umbuchen, da eine Antwort, so kann ich das annehmen?
- Vielen Dank für den input, ich werde mit ActiveMQ. Wenn Sie umbuchen als Antwort, ich werde upvote.
- Ok np ich kann nach einem Beispiel der Frühling mit ActiveMQ als embedded-Prozess, wenn Sie möchten ich habe so etwas schon getan.
- Danke, das wäre toll, da werden wir die Konfiguration von ActiveMQ mit dem Frühling.
- Vielen Dank für das Vertrauen, aber kann ich schlage vor, Sie akzeptieren Jean-Philippe Antwort statt? Ich schrieb gerade eine kurze oneliner, seine umfangreiche Antwort enthält eine Menge nützliche Dinge.
InformationsquelleAutor Evan Haas | 2013-01-15
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie gesagt, wir
ActiveMQ
ist ein bisschen schwerer alsZeroMQ
aber es funktioniert wirklich gut als embedded-Prozess.Hier ein einfaches Beispiel mit
Spring
undActiveMQ
.Die message-listener, der verwendet wird zum testen der Warteschlange :
ActiveMQ
Kontext-Konfiguration :Den
JUnit
test :Den Abhängigkeiten hinzufügen, um die
pom.xml
:WebSphere MQ-client hat die Fähigkeit zur Durchführung von multicast-pub/sub. Dies stellt eine client-zu-client-Fähigkeit, ohne dass der queue-manager, obwohl Sie einen queue-manager ist erforderlich, um die Verbindung herzustellen.