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

Vista: 3645|Risposta: 0

Spiegazione dettagliata dell'architettura dei messaggi AMQP di RabbitMQ

[Copiato link]
Pubblicato su 14/08/2022 23:32:43 | | | |
Introduzione al protocollo AMQP

AMQP (Advanced Message Queuing Protocol) è un protocollo standard a livello applicativo che fornisce servizi di messaggistica unificata ed è uno standard aperto per protocolli a livello applicativo progettato per middleware orientati ai messaggi. AMQP è un protocollo di rete per il passaggio di messaggi asincroni tra processi.

I client e il middleware dei messaggi basati su questo protocollo possono consegnare messaggi senza essere limitati da diversi prodotti client/middleware, linguaggi di sviluppo differenti, ecc.

Le principali caratteristiche di AMQP sono orientata ai messaggi, coda, routing (inclusi peer-to-peer e publish/subscribe), affidabilità e sicurezza. AMQP impone il comportamento dei provider di messaggi e dei client, consentendo una vera interoperabilità tra diversi fornitori.

Spiegazione dettagliata del protocollo AMQP
https://www.itsvse.com/thread-10347-1-1.html

Messaggi di instradamento

Nell'architettura AMQP, qualsiasi instradamento dei messaggi riuscito è composto da tre parti:

  • Scambio: dove i produttori pubblicano messaggi
  • Code: Dove i consumatori ricevono i messaggi
  • Bindings: come i messaggi vengono instradati dallo switch a una specifica coda


Scambi e Vincoli

Quindi, come arriva il messaggio in coda? Ogni volta che vuoi consegnare un messaggio a un consumatore, devi prima inviarlo allo scambio. Poi, in base a determinate regole o chiavi di instradamento, RabbitMQ deciderà a quale coda consegnare i messaggi.

Le regole - o chiavi di routing - ti permettono di associare una coda allo exchange. RabbitMQ cercherà di abbinare la chiave di routing nel messaggio a quella utilizzata nel binding. Il messaggio viene poi consegnato alla coda in base a uno dei quattro tipi di scambio: fanout, topic, direct, header



Scambio di Fanout

Questo tipo di scambio trasmette tutti i messaggi ricevuti a tutte le code ad esso collegate. Qualsiasi chiave di routing fornita con il messaggio pubblicato sarà ignorata.

Scambio di Temi

In questo tipo di scambio, i messaggi vengono inviati a una coda basata sulla chiave di instradamento. Ciò significa che i messaggi inviati allo scambio di argomenti devono avere una chiave di routing specifica, che deve essere una lista di parole separate da punti (ad esempio, 'acs.deviceoperations.'). Il limite di formulazione è di 255 byte.

La chiave di binding deve avere lo stesso formato della chiave di instradamento. Pertanto, i messaggi inviati con una chiave di routing specifica verranno consegnati a ciascuna coda vincolata con una chiave di binding corrispondente.

Le chiavi di binding permettono le seguenti regole di espressione:

*(asterisco) può sostituire una sola parola
# (hash) può sostituire zero o più parole
Quando una coda è associata con una chiave di binding "#" (hash), riceverà tutti i messaggi indipendentemente dalla chiave di instradamento, proprio come in uno scambio Fanout fan-out.

Scambio diretto

Quando viene dichiarata una coda, questa saràAssegna automaticamente uno switch che usa il nome della coda come chiave di routing。 Se la chiave di instradamento corrisponde, il messaggio viene consegnato alla coda appropriata.

Scambio di header

Gli switch header sono in qualche modo simili agli switch topic, ma a differenza degli switch topic, il routing si basa su code key, e i valori di routing degli header switch si basano sui dati dell'intestazione del messaggio.
La chiave di routing del topic switch è solo una stringa, mentre il header switch può essere un intero e un hash.

(Fine)





Precedente:Spiegazione dettagliata del protocollo AMQP
Prossimo:[Gira]. Ottimizzazioni delle prestazioni NET - attraversa rapidamente le collezioni di liste
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