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 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 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 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.
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.
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.
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.