Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 8397|Risposta: 0

Introduzione alle tre modalità di scambio (fanout, direct e topic) di RabbitMQ

[Copiato link]
Pubblicato su 29/03/2018 14:30:45 | | | |
Introduzione:
In RabbitMQ, tutti i messaggi inviati dai produttori sono accettati da Exchange, che poi li inoltra alla coda per l'archiviazione secondo una politica specifica
RabbitMQ offre quattro tipi di scambi: fanout, direct, topic e header
La modalità header è meno utilizzata nella pratica, e questo articolo confronta solo le prime tre modalità.

1. Scambio diretto


Qualsiasi messaggio inviato a Direct Exchange viene inoltrato alla Coda specificata nella RouteKey.

1. In generale, puoi usare l'Exchange che include rabbitMQ:" (il nome dello Exchange è una stringa vuota, d'ora in poi chiamata Exchange predefinita).

2. In questa modalità, non è necessario eseguire operazioni di binding su Exchange

3. Per la messaggistica è richiesta una "RouteKey", che può essere semplicemente intesa come il nome della coda a cui essere inviata.

4. Se il nome della coda specificato nel RouteKey non esiste nel vhost, il messaggio viene eliminato.

2. Scambio di fanout


Qualsiasi messaggio inviato allo Exchange Fanout viene inoltrato a tutte le Code legate a tale Exchange.

1. Può essere inteso come un modello della tabella di instradamento

2. Questa modalità non richiede un RouteKey

3. Questa modalità richiede di associare Exchange alla Coda in anticipo, uno Exchange può associare più Code e una Coda può essere associata a più Exchange.

4. Se l'Exchange che ha ricevuto il messaggio non è vincolato a nessuna Coda, il messaggio viene eliminato.

3. Scambio di Argomenti


Qualsiasi messaggio inviato allo Topic Exchange viene inoltrato a tutte le Code che si occupano degli argomenti specificati nella RouteKey

1. Questo schema è più complesso, in parole semplici, ogni coda ha il proprio argomento di interesse, tutti i messaggi hanno un "titolo" (RouteKey), e Exchange inoltrerà il messaggio a tutte le code che possono corrispondere perfettamente al RouteKey dell'argomento in questione.

2. Questa modalità richiede una RouteKey, forse collegando Exchange e Queue in anticipo.

3. Durante il binding, fornire un argomento che preoccupa la coda, come "#.log.#" per indicare che la coda tiene a tutti i messaggi relativi ai log (un messaggio con una RouteKey di "MQ.log.error" verrà inoltrato alla coda).

4. "#" significa 0 o più parole chiave, e "" significa una parola chiave. Per esempio, "log." Può corrispondere a "log.warn", ma non può corrispondere a "log.warn.timeout"; Ma "log.#" corrisponde a quanto sopra.

5. Analogamente, se Exchange non trova una Coda che corrisponda alla RouteKey, invierà questo messaggio.




Precedente:Usa XPosed per bypassare una forte validazione dei certificati SSL Android
Prossimo:Disconnessione e riconnessione RabbitMQ in .net/c#
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com