Definition Was ist RabbitMQ?

RabbitMQ ist eine frei verfügbare Message-Broker-Software unter Mozilla Public License. Sie ist eine Implementierung des Advanced Messaging Queue Protocols (AMQP) und verwaltet als zwischengeschalteter Dienst den Nachrichtenaustausch zwischen Sender und Empfänger. Die Software ist in der Programmiersprache Erlang geschrieben und für alle gängigen Betriebssysteme verfügbar.

Anbieter zum Thema

(Bild: © aga7ta - stock.adobe.com)

RabbitMQ ist der Name einer frei verfügbaren Message-Broker-Software. Die Buchstaben MQ im Namen stehen für Messaging Queue. Die Software steht unter Mozilla Public License und stellt eine Implementierung des Advanced Messaging Queue Protocols (AMQP) dar. Sie unterstützt alle gängigen Betriebssysteme wie Windows, macOS und Linux. RabbitMQ selbst ist in der Programmiersprache Erlang geschrieben.

Über die zahlreichen bereitgestellten Bibliotheken ist der Message Broker mit allen gängigen Programmiersprachen nutzbar. Über Plug-ins lässt sich RabbitMQ auch mit anderen Messaging-Protokollen wie STOMP (Streaming Text Oriented Messaging Protocol) oder MQTT (Message Queuing Telemetry Transport) einsetzen. Als zwischengeschalteter Dienst und Broker (Vermittler) realisiert und managt RabbitMQ den Nachrichtenaustausch zwischen Sendern und Empfängern in verteilten Umgebungen. Die Software richtet zwischen den Produzenten und den Konsumenten der Nachrichten Warteschlangen ein, in denen die Nachrichten zwischengelagert werden. Der Nachrichtenaustausch zwischen Sender und Empfänger ist asynchron. Das bedeutet, dass der Nachrichtenproduzent durch den Versand einer Nachricht nicht blockiert ist und unabhängig von der Abholung der Nachricht durch den Empfänger neue Aufgaben ausführen kann.

Zum Quellcode der Software gehören Austauschserver, Gateways für verschiedene Messaging-Protokolle, Bibliotheken und eine Plug-in-Plattform mit einigen vordefinierten Plug-ins. Entwickelt wurde RabbitMQ ursprünglich von Rabbit Technologies Ltd. Heute sind die Unternehmen VMware, General Electric und EMC Corporation über das Joint Venture Pivotal Software Inc. für die Entwicklung und Pflege der Software verantwortlich. Über Plug-ins lässt sich die Software individuell anpassen und der Funktionsumfang erweitern. Sehr beliebt ist das in der Standardinstallation enthaltene Management-Plug-in, das eine grafische Benutzeroberfläche bereitstellt. Über die GUI lassen sich Verwaltungs- und Konfigurationsaufgaben erledigen, Informationen über Warteschlagen einsehen und Statistiken abrufen.

RabbitMQ ist sehr populär und hat sich als Message-Broker-Software weltweit etabliert. Die Software wird von vielen Unternehmen in unterschiedlichen Anwendungen eingesetzt. Neben der Open-Source-Version von RabbitMQ existieren auch kommerzielle Angebote wie Tanzu RabbitMQ von VMware. Auch Support und Schulungen für RabbitMQ werden als kostenpflichtige Services angeboten. Die aktuelle Version (Stand Dezember 2021) der Software ist RabbitMQ v3.9.11.

Grundlage AMQP

Da RabbitMQ eine Implementierung des Advanced Message Queuing Protocols (AMQP) ist, zunächst einige grundlegende Informationen zu diesem offenen Standard. Er definiert ein MOM-Netzwerktransportprotokoll (Message-orientierte Middleware) auf Anwendungsebene. Das Protokoll ist für den asynchronen Austausch von Nachrichten zwischen zwei Anwendungsendpunkten vorgesehen. Es arbeitet binär und ist nicht von einer bestimmten Programmiersprache abhängig. Zur Absicherung lassen sich die übertragenen Daten verschlüsseln und die Kommunikationspartner authentifizieren.

RabbitMQ – Funktionsweise und Nachrichtenübermittlung

RabbitMQ agiert zur Übertragung der Nachrichten als Broker. Die Software nimmt die eingehenden Nachrichten in einer Warteschlange auf und regelt, wer die Nachrichten bekommt. Nachrichten bleiben in der Warteschlange gespeichert, bis sie der Empfänger entnimmt. Grundsätzlich lassen sich bei der Nachrichtenübertragung über RabbitMQ die vier Rollen Producer, Exchange, Queue und Consumer definieren. Der Producer erzeugt eine Nachricht und veröffentlicht sie an den Exchange. Der Exchange übernimmt die Verantwortung für die Weiterleitung der Nachricht und berücksichtigt dabei verschiedene Nachrichtenattribute und Routing Keys. Abhängig von den Attributen und Routing Keys schreibt der Exchange die Nachricht in eine bestimmte Queue (Warteschlange). Dort bleibt die Nachricht, bis der Consumer sie entnimmt und anschließend verarbeitet.

Die beiden Rollen Exchange und Queue sind mithilfe der RabbitMQ-Software realisiert. RabbitMQ kennt vier verschiedene Typen des Nachrichtenaustauschs (Exchange-Typen). Diese vier Typen sind Direct Exchange (direkte Verbindung zwischen Sender und Empfänger über eine einzige Queue), Topic Exchange (Nachrichtenaustausch mit mehreren ansprechbaren Queues), Fanout Exchange (Nachrichtenverteilung per Broadcast an alle Queues) und Header Exchange (Nachrichtenaustausch mit mehreren ansprechbaren Queues und Ansteuerung über Header-Attribute).

Vorteile von RabbitMQ

RabbitMQ bietet für die Nachrichtenübermittlung zwischen Producer und Consumer zahlreiche Vorteile wie:

  • unter Open-Source-Lizenz frei verfügbare Software
  • für alle gängigen Betriebssysteme erhältlich
  • arbeitet mit allen gängigen Programmiersprachen zusammen
  • für On-Premises-Installationen, verteilte Umgebungen und Cloud Computing geeignet
  • über Plug-ins individuell anpassbar
  • Unterstützung verschiedener Messaging-Protokolle wie AMQP, STOMP oder MQTT
  • schlanke, stabile und einfach zu installierende Anwendung
  • grafische Benutzeroberfläche per Plug-in verfügbar
  • populär und große Community im Netz
  • professioneller Support verfügbar
  • einfach zu skalieren
  • hochverfügbare Installation möglich
  • entkoppelt durch die asynchrone Nachrichtenübertragung die Prozesse von Producer und Consumer
  • auch für die Zustellung an mehrere Empfänger und für Broadcasts geeignet
  • unterstützt Verschlüsselung und Authentifizierung

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Big Data, Analytics & AI

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

(ID:47887991)