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

Pogled: 2516|Odgovoriti: 0

RabbitMQ: Kdo bo ustvaril Queue in Exchange

[Kopiraj povezavo]
Objavljeno na 3. 05. 2023 22:31:59 | | | |
Prevod

Sporočanje je temeljni del vsakega distribuiranega sistema. Omogoča proizvajalcu, da pošlje sporočilo poljubnemu številu potrošnikov, pri čemer ni nujno, da pozna kakršnekoli informacije o potrošniku. To je velika pomoč pri resnično asinhroni in ločevalni komunikaciji.



Ko uporabljate RabbitMQ, zgornji diagram prikazuje zelo osnovno, a tipično strukturo. Producent pošlje sporočilo stikalu. Po logiki usmerjanja stikalo sporočilo vključi v čakalno vrsto, vezano na stikalo. Natančneje, če gre za stikalo tipa broadcast, bo kopija tega sporočila večkrat poslana v vsako vrsto. Potrošnik lahko nato prejme in obdela sporočilo.

Pomembna predpostavka za uspešno delovanje zgornje strukture za proizvajalce in potrošnike je, da morajo biti vse komponente RabbitMQ (tj. vrste, stikala in vezave) ustvarjene vnaprej. Potrošnik ne more poslati sporočila stikalu. Če stikalo ne obstaja, potrošnik ne more obdelati sporočil iz čakalne vrste, ki ne obstaja.

Zato ni težko razumeti, da preden proizvajalec/potrošnik pošlje/prejme sporočilo, naj proizvajalec in potrošnik ustvari čakalno, preklopno in zavezujoče razmerje. Poglejmo si prednosti in slabosti vsakega načina.

1. Razlikovati odgovornosti



Prevajanje slik (1. Producent ustvari stikalo 2. Potrošnik ustvari vrsto in jo poveže s stikalom)

Da bi se proizvajalci in potrošniki popolnoma ločili, bi bilo idealno, da proizvajalci poznajo le informacije o stikalu (ne o vrsti), potrošniki pa le o vrsti (ne o stikalu). Vezavni odnos označuje odnos med stikalom in čakalno vrsto

Eden od možnih načinov je, da producent upravlja ustvarjanje stikala, potrošnik pa ustvari vrsto in jo poveže s stikalom. Prednost te metode ločevanja je, da če potrošnik potrebuje čakalno vrsto, jo preprosto ustvari in jo poveže glede na povpraševanje, proizvajalec pa ne potrebuje nobenih informacij o vrsti. A to ni zadostna ločitev: ker mora potrošnik poznati stikalo, da ga lahko poveže.

2. Producenti ustvarjajo vse

Ko proizvajalec teče, ga je mogoče konfigurirati tako, da ustvari vse potrebne komponente (stikala, vrste in vezave). Prednost tega pristopa je, da se sporočila ne izgubijo (ker je čakalna vrsta že ustvarjena in vezana na stikalo, uporabnik pa je ni treba najprej zagnati).

Vendar to pomeni, da mora producent poznati vse vrste, ki jih je treba povezati s stikalom. To je zelo povezan način. Razlog je v tem, da mora producent vsakič, ko je treba dodati novo vrsto, ponovno konfigurirati in namestiti, da ustvari in poveže vrste

3. Potrošniki ustvarjajo vse

Nasprotno pa je, da uporabnik ustvari stikala, vrste in vezave, ki jih potrebuje med zagonom. Tako kot pri prejšnjem pristopu ta metoda povzroča povezovanje, ker mora potrošnik poznati informacije o stikalu, na katerega je vezan v vrsti. Vsaka sprememba stikala (kot je preimenovanje) pomeni, da je treba vse uporabnike ponovno konfigurirati in uvesti. Ko so vrste in potrošniki veliki, je ta zapletenost lahko prevelika.

4. Nobena ne ustvari ničesar

Popolnoma drugačen pristop je, da ne proizvajalec ne potrošnik ustvarita potrebnih komponent. Namesto tega se ustvari z uporabo uporabniškega vmesnika administratorskega vtičnika ali administratorskega CLI-ja vnaprej. Ta metoda temelji na naslednjih prednostih:

  • Proizvajalce in potrošnike je mogoče popolnoma ločiti. Proizvajalci poznajo le izmenjavo, potrošniki pa le čakalno vrsto.
  • To je mogoče enostavno skriptirati in avtomatizirati kot del procesa uvajanja
  • Vsako spremembo, kot so nove vrste, je mogoče dodati, ne da bi posegali v obstoječe, nameščene založnike in potrošnike


Povzetek

V distribuiranih sistemih so asinhrona sporočila uporaben način za ločevanje, vendar je za ohranjanje njihove ločenosti potrebno vzdrževati učinkovito strategijo za vzdrževanje osnovne strukture sporočil (v RabbitMQ so to vrste, stikala in vezave).

Čeprav so lahko založniki in potrošniške storitve odgovorne za ustvarjanje potreb sami, so lahko dragi zaradi začetne izgube sporočil, povezovanja in operativnega vzdrževanja (glede konfiguracije in uvedbe).

Verjetno je najboljši način za urejanje konfiguracije sistema za sporočanje tam, kjer spada: pisati skripte zunaj aplikacije. To zagotavlja, da storitve ostanejo ločene in da se lahko sistem čakalnih vrst dinamično spreminja po potrebi, ne da bi vplival na veliko število obstoječih storitev.

Izvirno:Prijava do hiperpovezave je vidna.
Izvirna angleščina:Prijava do hiperpovezave je vidna.





Prejšnji:Uvod v IParsable vmesnik, dodan v .NET 7
Naslednji:VSTO (IV) Izpolnite sliko v Wordov dokument
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