RabbitMQ Exchanges

Wenn ein Produzent eine Nachricht erstellt, wird diese nicht direkt an eine Warteschlange gesendet, sondern zunächst an Exchanges, danach liest ein Routing-Agent die Nachricht und sendet sie mit Hilfe von Header-Attributen, Bindungen und Routing-Schlüsseln an die entsprechende Warteschlange.

RabbitMQ Exchange Types

In rabbitmq gibt es vier Arten von Exchanges, um die Nachricht auf verschiedene Arten zu routen.

Nachfolgend sind die verschiedenen Arten von Exchanges in rabbitmq aufgeführt.

  • Direct
  • Fanout
  • Topic
  • Headers

RabbitMQ Direct Exchange

In rabbitmq wird ein direkter Exchange eine Nachricht basierend auf dem Message Routing Key an die Queues liefern. Beim direkten Austausch wird die Nachricht an die Warteschlangen weitergeleitet, deren Bindungsschlüssel genau mit dem Routing-Schlüssel der Nachricht übereinstimmt.

Nachfolgend ist die bildliche Darstellung des Nachrichtenflusses beim direkten Austausch von Rabbit.

RabbitMQ Direct Exchange Process Flow Diagram

RabbitMQ Fanout Exchange

In rabbitmq leitet fanout exchange Nachrichten an alle Warteschlangen weiter, die an ihn gebunden sind.

Nachfolgend ist die bildliche Darstellung des Nachrichtenflusses in rabbitmq fanout exchange.RabbitMQ Fanout Exchange Process Flow Diagram

RabbitMQ Topic Exchange

In Rabbitmq führt Topic Exchange einen Wildcard-Match zwischen dem Routing-Schlüssel und dem in der Bindung spezifizierten Routing-Muster durch, um eine Nachricht in einer Warteschlange zu veröffentlichen.

Nachfolgend ist die bildliche Darstellung des Nachrichtenflusses in Rabbitmq Topic Exchange.

RabbitMQ Topic Exchange Process Flow Diagram

RabbitMQ Headers Exchange

In rabbitmq, headers exchanges will use the message header attributes for routing.

Following is the pictorial representation of message flow in rabbitmq headers exchange.

RabbitMQ Headers Exchange Process Flow Diagram

Nun werden wir sehen, wie man Exchanges in rabbitmq mit dem Web Management Plugin hinzufügt.

RabbitMQ Create Exchange

Um neue Exchanges zu erstellen, öffnen Sie zuerst das rabbtimq Web Management Portal, geben Sie die Standard-Zugangsdaten ein und wählen Sie dann den Reiter Exchanges.

RabbitMQ Server Web Management Login Screen

Nach dem Navigieren zum Exchanges Tab, sehen Sie “Add a new exchange panel” klicken Sie einfach auf dieses Panel um es zu erweitern und es wird verschiedene Eigenschaften enthalten um einen neuen Exchange zu erstellen, wie unten gezeigt.

Erstellen eines neuen Austauschs in Rabbitmq

Eigenschaften eines RabbitMQ Austauschs

Nachfolgend sind die verschiedenen Eigenschaften aufgeführt, die wir ausfüllen müssen, um einen neuen Austausch in Rabbitmq zu erstellen.

Eigenschaft Beschreibung
Name Der Name ist der Name des Austauschs, den Sie festlegen und der eindeutig sein muss.
Typ Sie können den erforderlichen Austauschtyp auswählen, entweder Topic oder Fanout usw., je nach Ihren Anforderungen.
Dauerhaftigkeit Durch die Verwendung von Dauerhaftigkeitseigenschaften (Durable, Transient) können wir dafür sorgen, dass die Nachricht auch nach einem Neustart des Servers erhalten bleibt. Wenn wir “Dauerhaft” auswählen, bleibt die Nachricht auch nach einem Server-Neustart erhalten. Wenn wir Tansient auswählen, wird die Nachricht nach dem Neustart des Servers nicht mehr funktionieren.
Auto Delete Mit der Eigenschaft Auto Delete können wir festlegen, ob ein Austausch gelöscht werden kann, wenn wir die Bindung der zugewiesenen Warteschlange aufheben.
Internal Wenn wir diese Eigenschaft auf “Ja” setzen, kann der Austausch nicht direkt von Publishern verwendet werden, sondern nur, wenn er an andere Austausche gebunden ist.
Alternativer Austausch Wenn es ein Problem bei der Veröffentlichung von Nachrichten an den Austausch gibt, können wir mit dieser Eigenschaft einen alternativen Austausch angeben, um eine Nachricht an die Warteschlange zu senden.

Wenn wir alle erforderlichen Details eingegeben haben, klicken wir auf die Schaltfläche Austausch hinzufügen, um einen neuen Austausch wie unten gezeigt zu erstellen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.