Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 8397|Odgovoriti: 0

Uvod v tri načine izmenjave (fanout, direct in topic) v RabbitMQ

[Kopiraj povezavo]
Objavljeno na 29. 03. 2018 14:30:45 | | | |
Uvod:
V RabbitMQ Exchange sprejme vsa sporočila, ki jih pošljejo proizvajalci, nato pa jih posreduje v Queue za shranjevanje po posebni politiki
RabbitMQ ponuja štiri vrste izmenjav: fanout, direktno, tematsko in glavno
Način z glavo se v praksi manj uporablja, ta članek pa primerja le prve tri načine.

1. Neposredna izmenjava


Vsa sporočila, poslana Direct Exchange, se posredujejo v vrsto, določeno v RouteKey.

1. Na splošno lahko uporabite Exchange, ki je priložen rabbitMQ:" (ime Exchange je prazen niz, v nadaljevanju imenovan privzeti Exchange).

2. V tem načinu ni potrebe po izvajanju nobenih vezavnih operacij na Exchange

3. Za sporočanje je potreben "RouteKey", ki ga lahko preprosto razumemo kot ime vrste, kamor je treba poslati podatke.

4. Če ime vrste, določeno v RouteKey, ne obstaja v vhostu, se sporočilo zavrže.

2. Izmenjava Fanout


Vsa sporočila, poslana na Fanout Exchange, se posredujejo vsem vrstam, vezanim na to izmenjavo.

1. Lahko ga razumemo kot vzorec usmerjevalne tabele

2. Ta način ne zahteva RouteKey

3. Ta način zahteva, da se Exchange vnaprej veže na čakalno vrsto, ena Exchange lahko veže več vrst, ena pa je lahko vezana na več izmenjav.

4. Če borza, ki je prejela sporočilo, ni vezana na nobeno vrsto, se sporočilo zavrže.

3. Izmenjava tem


Vsa sporočila, poslana na Topic Exchange, se posredujejo vsem vrstam, ki jih zanimajo teme, določene v RouteKey

1. Ta vzorec je bolj zapleten, preprosto povedano, vsaka vrsta ima svojo temo skrbi, vsa sporočila imajo "naslov" (RouteKey), Exchange pa bo sporočilo posredoval vsem vrstam, ki se lahko okvirno ujemajo s RouteKey zadeve.

2. Ta način zahteva RouteKey, morda vnaprej vezan na Exchange in Queue.

3. Pri vezavi navedite temo, ki je vrsti pomembna, na primer "#.log.#", da označite, da vrsta skrbi za vsa sporočila, povezana z dnevniki (sporočilo s RouteKey "MQ.log.error" bo posredovano vrsti).

4. "#" pomeni 0 ali več ključnih besed, "" pa eno ključno besedo. Na primer, "log." Lahko se ujema z "log.warn", vendar ne more ujeti "log.warn.timeout"; A "log.#" se ujema z zgoraj omenjenim.

5. Podobno, če Exchange ne najde vrste, ki ustreza RouteKey, bo to sporočilo zavrgel.




Prejšnji:Uporabite XPosed za obhod močne potrditve Android SSL certifikatov
Naslednji:.net/c# RabbitMQ prekinitev povezave – prekinitev in ponovna povezava
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com