Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 8397|Atbildi: 0

Ievads trīs RabbitMQ apmaiņas režīmos (fanout, tiešais un tēma)

[Kopēt saiti]
Publicēts 29.03.2018 14:30:45 | | | |
Ievads:
RabbitMQ visus ražotāju iesniegtos ziņojumus pieņem Exchange, kas pēc tam tos pārsūta uz Queue glabāšanai saskaņā ar konkrētu politiku
RabbitMQ nodrošina četru veidu apmaiņu: fanout, tiešo, tēmu un galveni
Galvenes režīms praksē tiek izmantots mazāk, un šajā rakstā ir salīdzināti tikai pirmie trīs režīmi.

1. Tiešā apmaiņa


Visi ziņojumi, kas nosūtīti uz Direct Exchange, tiek pārsūtīti uz rindu, kas norādīta RouteKey.

1. Kopumā jūs varat izmantot Biržu, kas nāk kopā ar rabbitMQ:" (Biržas nosaukums ir tukša virkne, turpmāk saukta par noklusējuma Biržu).

2. Šajā režīmā nav nepieciešams veikt nekādas saistošas darbības Exchange

3. Ziņojumapmaiņai ir nepieciešama "RouteKey", ko var vienkārši saprast kā sūtāmās rindas nosaukumu.

4. Ja rindas nosaukums, kas norādīts RouteKey, vhost nepastāv, ziņojums tiek nomests.

2. Fanout apmaiņa


Visi ziņojumi, kas nosūtīti uz Fanout Exchange, tiek pārsūtīti uz visām rindām, kas saistītas ar šo Exchange.

1. To var saprast kā maršrutēšanas tabulas modeli

2. Šim režīmam nav nepieciešama RouteKey

3. Šim režīmam ir nepieciešama Exchange saistīšana ar rindu iepriekš, viens Exchange var saistīt vairākas rindas, un viena rinda var būt saistīta ar vairākām biržām.

4. Ja Exchange, kas saņēma ziņojumu, nav saistīta ar nevienu rindu, ziņojums tiek atmests.

3. Tēmu apmaiņa


Visi ziņojumi, kas nosūtīti uz tēmu apmaiņu, tiek pārsūtīti uz visām rindām, kas rūpējas par tēmām, kas norādītas maršruta atslēgā

1. Šis modelis ir sarežģītāks, vienkārši sakot, katrai rindai ir sava tēma, visiem ziņojumiem ir "nosaukums" (RouteKey), un Exchange pārsūtīs ziņojumu visām rindām, kas var fuguely atbilst attiecīgās tēmas RouteKey.

2. Šim režīmam ir nepieciešams RouteKey, iespējams, iepriekš saistošs Exchange un Queue.

3. Saistot, norādiet rindai svarīgu tēmu, piemēram, "#.log.#", lai norādītu, ka rinda rūpējas par visiem ziņojumiem, kas saistīti ar žurnāliem (uz rindu tiks pārsūtīts ziņojums ar RouteKey "MQ.log.error").

4. "#" nozīmē 0 vai vairākus atslēgvārdus, un "" nozīmē vienu atslēgvārdu. Piemēram, "žurnāls". Tas var atbilst "log.warn", bet nevar atbilst "log.warn.timeout"; Bet "log.#" atbilst iepriekš minētajam.

5. Līdzīgi, ja Exchange neatrod rindu, kas atbilst RouteKey, tas izmetīs šo ziņojumu.




Iepriekšējo:Izmantojiet XPosed, lai apietu spēcīgu Android SSL sertifikātu validāciju
Nākamo:.net/c# RabbitMQ savienojuma atvienošana - atvienošana un atkārtota pieslēgšana
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com