I rabbitmq, når producenten opretter en meddelelse, der ikke sendes direkte til en kø, sendes meddelelsen først til exchanges, hvorefter en routing agent læser og sender den til den relevante kø ved hjælp af header-attributter, bindinger og routing-nøgler.
RabbitMQ Exchange Types
I rabbitmq har vi en fire type Exchanges er tilgængelige for at dirigere meddelelsen på forskellige måder.
Følgende er de forskellige typer udvekslinger, der er tilgængelige i rabbitmq.
- Direct
- Fanout
- Topic
- Headers
RabbitMQ Direct Exchange
I rabbitmq vil direkte udveksling levere en besked til køerne baseret på besked-routing-nøglen. I direkte udveksling videresendes meddelelsen til de køer, hvis bindingsnøgle passer nøjagtigt til meddelelsens routingnøgle.
Følgende er den billedlige repræsentation af meddelelsesflowet i rabbit direct exchange.
RabbitMQ Fanout Exchange
I rabbitmq vil fanout exchange videresende meddelelser til alle de køer, der er bundet til den.
Følgende er den billedlige repræsentation af meddelelsesstrømmen i rabbitmq fanout exchange.
RabbitMQ Topic Exchange
I rabbitmq udfører topic exchange et wildcard-match mellem routingnøglen og det routingmønster, der er angivet i bindingen, for at offentliggøre en meddelelse til køen.
Det følgende er en billedlig fremstilling af meddelelsesflowet i rabbitmq topic exchange.
RabbitMQ Headers Exchange
I rabbitmq vil headers exchanges bruge beskedhovedattributterne til routing.
Følgende er den billedlige repræsentation af beskedflowet i rabbitmq headers exchange.
Nu vil vi se, hvordan man tilføjer udvekslinger i rabbitmq ved hjælp af web management plugin.
RabbitMQ Create Exchange
For at oprette nye udvekslinger skal du først åbne rabbtimq web management portal, indtaste et standard legitimationsoplysninger for at logge ind og derefter vælge Exchanges-fanen.
Når du har navigeret til fanen Exchanges, vil du se “Add a new exchange panel”, klik blot på dette panel for at udvide, og det vil indeholde forskellige egenskaber til at oprette en ny udveksling som vist nedenfor.
RabbitMQ Exchange Properties
Følgende er de forskellige typer af egenskaber, som vi skal udfylde for at oprette en ny udveksling i rabbitmq.
Property | Description |
---|---|
Name | Navnet vil være et udvekslingsnavn, som du vil indstille, og det skal være unikt. |
Type | Du kan vælge den nødvendige udvekslingstype, enten topic eller fanout osv. baseret på dine krav. |
Durability | Gennem brug af durability-egenskaber (Durable, Transient) kan vi få meddelelsen til at overleve, selv efter genstart af serveren. Hvis vi vælger Durable, vil meddelelsen overleve selv efter genstart af serveren. Hvis vi vælger Tansient, vil meddelelsen ikke fungere efter genstart af serveren. |
Auto Delete | Ved hjælp af auto delete-egenskaben kan vi indstille, om en udveksling kan slette, hvis vi ophæver den tildelte kø. |
Internal | Hvis vi indstiller denne egenskab til ja, kan udvekslingen ikke bruges direkte af udgivere, men kun når den er bundet til andre udvekslinger. |
Alternate-exchange | Hvis der er et problem med at offentliggøre en meddelelse til en udveksling, kan vi ved hjælp af denne egenskab angive en alternativ udveksling til at sende en meddelelse til køen. |
Når vi har indtastet alle de nødvendige oplysninger, skal vi klikke på knappen Tilføj udveksling for at oprette en ny udveksling som vist nedenfor.