See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 2516|Vastuse: 0

RabbitMQ: Kes loob Queue ja Exchange'i

[Kopeeri link]
Postitatud 03.05.2023 22:31:59 | | | |
Tõlge

Sõnumivahetus on iga hajutatud süsteemi lahutamatu osa. See võimaldab tootjal saata sõnumi suvalisele arvule tarbijatele ning tarbija kohta ei ole vaja teada mingit teavet. See on suurepärane abi tõeliselt asünkroonseks ja lahutavaks suhtluseks.



Kui kasutad RabbitMQ-d, näitab ülalolev diagramm väga lihtsat, kuid tüüpilist struktuuri. Produtsent saadab lülitile sõnumi. Marsruutimisloogika kohaselt paneb lüliti sõnumi lülitiga seotud järjekorda. Täpsemalt, kui tegemist on ringhäälingutüüpi lülitiga, saadetakse selle sõnumi koopia korduvalt igale järjekorrale. Tarbija saab seejärel sõnumi vastu võtta ja töödelda.

Oluline eeldus, et ülaltoodud struktuur toimiks edukalt tootjate ja tarbijate jaoks, on see, et kõik RabbitMQ komponendid (st järjekorrad, lülitid ja sidumised) tuleb eelnevalt luua. Tarbija ei saa saata sõnumit lülitile. Kui lülitit ei eksisteeri, ei saa ta töötada sõnumeid järjekorrast, mida ei eksisteeri.

Seetõttu ei ole raske mõista, et enne kui tootja/tarbija sõnumi saadab/vastu võtab, lase tootja/tarbija väärtusel luua järjekorra, lüliti ja sidumissuhte. Vaatame mõlema viisi eeliseid ja puudusi.

1. Erista vastutusi



Pildi tõlge (1. Tootja loob lüliti 2. Tarbija loob järjekorra ja seob järjekorra lülitiga)

Selleks, et tootjad ja tarbijad saaksid täielikult lahkneda, teavad tootjad ideaalis ainult infot lüliti kohta (mitte järjekorda), ja tarbijad teavad ainult järjekorrast (mitte lülitist). Sidumissuhe näitab lüliti ja järjekorra vahelist seost

Üks võimalik viis on, et tootja tegeleb lüliti loomisega ning tarbija loob järjekorra ja seob selle lülitiga. Selle lahutamismeetodi eelis on see, et kui tarbijal on vaja järjekorda, on vaja lihtsalt luua järjekord ja siduda ta vastavalt nõudlusele, ning tootja ei pea teadma järjekorra kohta mingit infot. Kuid see ei ole piisav lahutamine: sest tarbija peab teadma lülitit, et seda siduda.

2. Produtsendid loovad kõik

Kui tootja töötab, saab selle seadistada looma kõik vajalikud komponendid (lülitid, järjekorrad ja sidumised). Selle lähenemise eeliseks on see, et sõnumeid ei kao (sest järjekord on juba loodud ja seotud lülitiga ning ükski tarbija ei pea seda enne käivitama).

See tähendab siiski, et tootja peab teadma kõiki järjekordi, mis tuleb lülitiga siduda. See on tugevalt seotud viis. Põhjus on selles, et iga kord, kui uut järjekorda tuleb lisada, peab tootja ümber seadistama ja juurutama, et luua ja siduda järjekorrad

3. Tarbijad loovad kõik

Vastupidine on lasta tarbijal luua lülitid, järjekorrad ja sidemed, mida ta vajab, kui seade töötab. Nagu eelnevas lähenemises, tekitab see meetod sidumise, kuna tarbija peab teadma infot lüliti kohta, millega ta on järjekorraga seotud. Igasugused muudatused lülitis (näiteks ümbernimetamine) tähendavad, et kõik tarbijad tuleb ümber seadistada ja juurutada. Kui järjekorrad ja tarbijad on suured, võib see keerukus olla liiga keeruline.

4. Kumbki ei loo midagi

Täiesti teine lähenemine on see, et tootja ega tarbija ei tooda vajalikke komponente. Selle asemel luuakse see eelnevalt administraatori plugina või administraatori CLI kasutajaliidese abil. See meetod põhineb järgmistel eelistel:

  • Tootjad ja tarbijad võivad olla täielikult lahutatud. Tootjad tunnevad ainult vahetust ja tarbijad ainult järjekorda.
  • Seda saab hõlpsasti skriptida ja automatiseerida juurutusprotsessi osana
  • Kõik muudatused, nagu uued järjekorrad, saab lisada ilma olemasolevaid, kasutusel olevaid väljaandjaid ja tarbijaid puudutamata


Kokkuvõte

Hajutatud süsteemides on asünkroonsed sõnumid kasulik viis lahutada, kuid nende lahutamiseks on vajalik hoida tõhusat strateegiat aluseks oleva sõnumistruktuuri säilitamiseks (RabbitMQ-s on need järjekorrad, lülitid ja sidumised).

Kuigi kirjastajad ja tarbijateenused võivad ise vastutada vajaliku loomise eest, võivad need olla kulukad esialgse sõnumikadumise, sidumise ja operatiivse hoolduse (konfiguratsiooni ja juurutamise osas) osas.

Tõenäoliselt parim viis sõnumisüsteemi konfiguratsiooni käsitlemiseks seal, kus see kuulub: kirjutada skripte väljaspool rakendust. See tagab, et teenused jäävad lahutatuks ning järjekorrasüsteem saab vajadusel dünaamiliselt muutuda, mõjutamata suurt hulka olemasolevaid teenuseid.

Originaal:Hüperlingi sisselogimine on nähtav.
Originaalne inglise keel:Hüperlingi sisselogimine on nähtav.





Eelmine:Sissejuhatus IParsable liidese lisatud .NET 7-sse
Järgmine:VSTO (IV) Täida pilt Wordi dokumenti
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com