Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 8397|Răspunde: 0

Introducere în cele trei moduri de schimb (fanout, direct și topic) ale RabbitMQ

[Copiază linkul]
Postat pe 29.03.2018 14:30:45 | | | |
Introducere:
În RabbitMQ, toate mesajele trimise de producători sunt acceptate de Exchange, care apoi le redirecționează către coadă pentru stocare conform unei politici specifice
RabbitMQ oferă patru tipuri de schimburi: fanout, direct, topic și header
Modul de antet este mai puțin folosit în practică, iar acest articol compară doar primele trei moduri.

1. Schimb direct


Orice mesaje trimise către Direct Exchange sunt redirecționate către Coada specificată în RouteKey.

1. În general, poți folosi Exchange care vine cu rabbitMQ:" (numele Exchange este un șir gol, denumit în continuare Exchange implicit).

2. În acest mod, nu este nevoie să se efectueze operațiuni de binding pe Exchange

3. Un "RouteKey" este necesar pentru mesagerie, care poate fi înțeles simplu ca numele cozii către care trebuie trimis.

4. Dacă numele cozii specificat în RouteKey nu există în vhost, mesajul este eliminat.

2. Schimb de fani


Orice mesaje trimise către Fanout Exchange sunt redirecționate către toate cozile legate de acel Exchange.

1. Poate fi înțeleasă ca un model al tabelului de rutare

2. Acest mod nu necesită un RouteKey

3. Acest mod necesită legarea Schimbului de Coadă în avans, un Exchange poate lega mai multe Cozi, iar o coadă poate fi legată de mai multe Schimburi.

4. Dacă Exchange-ul care a primit mesajul nu este legat de nicio coadă, mesajul este eliminat.

3. Schimb de subiecte


Orice mesaje trimise către Schimbul de Subiecte sunt redirecționate către toate Cozile care se ocupă de subiectele specificate în RouteKey

1. Acest tipar este mai complex, pe scurt, fiecare coadă are propriul subiect de interes, toate mesajele au un "titlu" (RouteKey), iar Exchange va redirecționa mesajul către toate cozile care pot corespunde perfect cu RouteKey al subiectului de interes.

2. Acest mod necesită un RouteKey, poate legând Exchange și Queue în avans.

3. Când se leagă, se indică un subiect care îi interesează cozii, cum ar fi "#.log.#" pentru a indica faptul că coada ține cont de toate mesajele legate de jurnale (un mesaj cu RouteKey "MQ.log.error" va fi redirecționat către coadă).

4. "#" înseamnă 0 sau mai multe cuvinte cheie, iar "" înseamnă un cuvânt cheie. De exemplu, "log". Poate corespunde cu "log.warn", dar nu poate corespunde cu "log.warn.timeout"; Dar "log.#" corespunde cu cele de mai sus.

5. În mod similar, dacă Exchange nu găsește o coadă care să corespundă cu RouteKey, va trimite acest mesaj.




Precedent:Folosește XPosed pentru a ocoli validarea puternică a certificatelor SSL Android
Următor:.net/c# Deconectare conexiune RabbitMQ - deconectare și reconectare
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com