In rabbitmq, quando il produttore crea un messaggio che non sarà direttamente inviato ad una coda, invece prima il messaggio sarà inviato agli scambi, poi dopo che un agente di routing lo legge e lo invia alla coda appropriata con l’aiuto di attributi di intestazione, binding e chiavi di routing.
Tipi di scambio RabbitMQ
In rabbitmq, abbiamo quattro tipi di scambi disponibili per instradare il messaggio in modi diversi.
Seguono i diversi tipi di scambio disponibili in rabbitmq.
- Diretto
- Fanout
- Topic
- Headers
RabbitMQ Direct Exchange
In rabbitmq, lo scambio diretto consegna i messaggi alle code in base alla chiave di routing del messaggio. Nello scambio diretto, il messaggio viene instradato alle code la cui chiave di binding corrisponde esattamente alla chiave di instradamento del messaggio.
Di seguito la rappresentazione pittorica del flusso dei messaggi nello scambio diretto rabbit.
RabbitMQ Fanout Exchange
In rabbitmq, fanout exchange instrada i messaggi a tutte le code che sono legate ad esso.
Di seguito la rappresentazione grafica del flusso dei messaggi in rabbitmq fanout exchange.
RabbitMQ Topic Exchange
In rabbitmq, topic exchange esegue una corrispondenza jolly tra la chiave di routing e lo schema di routing specificato nel binding per pubblicare un messaggio nella coda.
Di seguito la rappresentazione grafica del flusso dei messaggi in rabbitmq topic exchange.
Scambio di intestazioni RabbitMQ
In rabbitmq, gli scambi di intestazioni useranno gli attributi dell’intestazione del messaggio per l’instradamento.
Di seguito la rappresentazione pittorica del flusso di messaggi nello scambio di intestazioni rabbitmq.
Ora vedremo come aggiungere scambi in rabbitmq usando il plugin di gestione web.
RabbitMQ Create Exchange
Per creare nuovi scambi, prima apri il portale di gestione web rabbtimq, inserisci le credenziali di default per accedere e poi scegli la scheda Exchanges.
Dopo aver navigato nella scheda Exchanges, vedrai “Add a new exchange panel” basta cliccare su quel pannello per espanderlo e questo conterrà diverse proprietà per creare un nuovo scambio come mostrato di seguito.
Proprietà dello scambio RabbitMQ
Seguono i diversi tipi di proprietà che dobbiamo compilare per creare un nuovo scambio in rabbitmq.
Proprietà | Descrizione |
---|---|
Nome | Il nome sarà un nome di scambio che imposterai e deve essere unico. |
Type | Puoi selezionare il tipo di scambio richiesto o topic o fanout, ecc. in base alle tue esigenze. |
Durability | Utilizzando le proprietà Durability (Durable, Transient), possiamo far sopravvivere il messaggio anche dopo il riavvio del server. Se selezioniamo Durable, allora il messaggio sopravviverà anche dopo il riavvio del server. Nel caso, se selezioniamo Tansient, allora il messaggio non sarà in servizio dopo il riavvio del server. |
Auto Delete | Utilizzando la proprietà auto delete, possiamo impostare se uno scambio può cancellare se scolleghiamo la coda assegnata. |
Internal | Se impostiamo questa proprietà sì, allora lo scambio non può essere usato direttamente dagli editori, ma solo quando legato ad altri scambi. |
Alternate-exchange | Se c’è un problema nella pubblicazione del messaggio allo scambio, allora usando questa proprietà, possiamo specificare uno scambio alternativo per inviare un messaggio alla coda. |
Una volta inseriti tutti i dettagli richiesti, facciamo clic sul pulsante Add exchange per creare un nuovo scambio come mostrato di seguito.