Zum Inhalt springen

Apache ActiveMQ

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 13. Dezember 2023 um 17:00 Uhr durch imported>Aka (https).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Apache ActiveMQ

colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | Apache ActiveMQ Logo
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Entwickler Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Erscheinungsjahr Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Aktuelle Version Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value))
Aktuelle Vorabversion Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value))
Betriebssystem Plattformunabhängig
Programmier­sprache Java
Kategorie Java Message Service Message Oriented Middleware
Lizenz Apache-Lizenz 2.0
activemq.apache.org

Apache ActiveMQ ist ein freier Message Broker, der vollständig das Java Message Service 1.1 (JMS) implementiert. Apache ActiveMQ verändert die Verbindungen eines Netzwerks zwischen bestehenden Anwendungen, indem die synchrone Kommunikation zwischen zu integrierenden Applikationen in eine asynchrone Kommunikation umgewandelt wird.

Apache ActiveMQ wird von Enterprise Service Bus Implementierungen wie Apache ServiceMix und Mule verwendet. Apache ActiveMQ selbst wiederum inkludiert Apache Camel 2.0 und KahaDb Persistent Storage.

Funktionalitäten

Abgesehen von JMS unterstützt er die Protokolle AMQP 1.0, MQTT, OpenWire, REST, STOMP und WebSocket. Als Programmiersprache können Java, das .NET-Framework<ref>NMS Clients. In: Apache ActiveMQ. The Apache Software Foundation, abgerufen am 5. November 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, sowie C<ref>ActiveMQ - C Integration. The Apache Software Foundation, abgerufen am 5. November 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>, Ruby, Perl, Python oder PHP eingesetzt werden.

Er beinhaltet weitere Features wie z. B. Clustering und die Verwaltung von Nachrichten und Client-Implementierungen.

ActiveMQ kann direkt auf einer herkömmlichen Java Virtual Machine (JVM) ausgeführt werden, der Einsatz eines Applikationsservers ist nicht nötig.<ref>ActiveMQ. In: Apache ActiveMQ. The Apache Software Foundation, abgerufen am 17. Oktober 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>

Definition

ActiveMQ wird entweder als JMS Provider (Anbieter) oder als Broker (Makler) bezeichnet und übernimmt damit die Rolle eines Servers. Alle anderen Anwendungen im JMS Netzwerk werden dagegen als JMS-Clients bezeichnet.

Ein Broker kennt zwei Arten von Destinationen (Reiseziel, Zielort) – Queue und Topic. Sobald der Broker die erste Nachricht für dieses Reiseziel empfangen hat, wird in beiden Fällen die Destination samt ihrer Art automatisch festgestellt.

Queues kennen zwei Arten von Clients – Erzeuger (Producer) und Verbraucher (Consumer). Hat ein Verbraucher eine Nachricht von einem Erzeuger empfangen, wird diese Nachricht aus der Queue gelöscht und steht den anderen Verbrauchern nicht mehr zur Verfügung. Eine Nachricht kann also nur von einem einzelnen Verbraucher empfangen (konsumiert) werden.

Topics kennen ebenfalls zwei Arten von Clients – Publisher und Subscriber. In diesem Fall ist es jedoch möglich, dass mehrere Subscriber die gleiche Nachricht empfangen.

Literatur

  • Bruce Snyder, Dejan Bosanac, Rob Davies: ActiveMQ in Action. Hrsg.: Manning Publications. 1. Auflage. 2010, ISBN 978-1-933988-94-8.

Einzelnachweise

<references />