In rabbitmq, wanneer een producent een bericht maakt dat niet direct naar een wachtrij wordt gestuurd, in plaats daarvan wordt het bericht eerst naar uitwisselingen gestuurd, daarna leest een routing agent het en stuurt het naar de juiste wachtrij met behulp van header attributen, bindingen, en routing keys.
RabbitMQ Exchange Types
In rabbitmq, hebben we een viertal type Exchanges beschikbaar om het bericht op verschillende manieren te routeren.
Volgende zijn de verschillende type uitwisselingen beschikbaar in rabbitmq.
- Direct
- Fanout
- Topic
- Headers
RabbitMQ Direct Exchange
In rabbitmq, directe uitwisseling zal een bericht aan de wachtrijen afleveren, gebaseerd op de bericht routing sleutel. Bij directe uitwisseling wordt het bericht naar de wachtrijen geleid waarvan de bindingssleutel precies overeenkomt met de routingsleutel van het bericht.
Hieronder volgt een grafische weergave van de berichtenstroom bij directe uitwisseling met rabbit.
RabbitMQ Fanout Exchange
In rabbitmq, zal fanout exchange berichten routeren naar alle wachtrijen die eraan gebonden zijn.
Hieronder ziet u de afbeelding van de berichtenstroom in rabbitmq fanout exchange.
RabbitMQ Topic Exchange
In rabbitmq, zal topic exchange een wildcard match uitvoeren tussen de routing key en het routing patroon gespecificeerd in de binding om een bericht naar een wachtrij te publiceren.
Hieronder ziet u de picturale representatie van de berichtenstroom in rabbitmq topic exchange.
RabbitMQ Headers Exchange
In rabbitmq, headers exchanges zullen de bericht header attributen gebruiken voor routing.
Hieronder ziet u een afbeelding van de berichtstroom in rabbitmq headers exchange.
Nu zullen we zien hoe we uitwisselingen in rabbitmq kunnen toevoegen met behulp van web management plugin.
RabbitMQ Create Exchange
Om nieuwe uitwisselingen te creëren, open eerst rabbtimq web management portal, voer een standaard inloggegevens in en kies dan Exchanges tab.
Na het navigeren naar Exchanges tab, zult u “Add a new exchange panel” zien. Klik op dat paneel om het uit te vouwen en het zal verschillende eigenschappen bevatten om een nieuwe uitwisseling aan te maken, zoals hieronder getoond.
RabbitMQ Uitwisselingseigenschappen
Hieronder staan de verschillende eigenschappen die we moeten invullen om een nieuwe uitwisseling in rabbitmq aan te maken.
Property | Description |
---|---|
Name | De naam zal een exchange naam zijn die u instelt en deze moet uniek zijn. |
Type | U kunt het vereiste uitwisselingstype selecteren, hetzij topic of fanout, enz. op basis van uw vereisten. |
Duurzaamheid | Door gebruik te maken van de eigenschappen Duurzaamheid (Duurzaam, Tijdelijk), kunnen we ervoor zorgen dat het bericht blijft bestaan, zelfs nadat de server opnieuw is opgestart. Als we Durable selecteren, dan zal het bericht blijven bestaan, zelfs na een herstart van de server. In het geval dat we Tansient selecteren, dan zal het bericht geen dienst doen na een herstart van de server. |
Auto Delete | Door gebruik te maken van de auto delete eigenschap, kunnen we instellen of een uitwisseling kan verwijderen als we de toegewezen wachtrij ontkoppelen. |
Internal | Als we deze eigenschap ja zetten, dan mag de uitwisseling niet rechtstreeks door uitgevers worden gebruikt, maar alleen als ze aan andere uitwisselingen is gekoppeld. |
Alternate-exchange | Als er een probleem is bij het publiceren van een bericht naar een exchange, dan kunnen we met behulp van deze eigenschap een alternatieve exchange opgeven om een bericht naar de wachtrij te sturen. |
Als we alle vereiste gegevens hebben ingevoerd, klikken we op de knop Exchange toevoegen om een nieuwe exchange te maken, zoals hieronder is weergegeven.