Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 2516|Odpoveď: 0

RabbitMQ: Kto vytvorí Queue a Exchange

[Kopírovať odkaz]
Zverejnené 3. 5. 2023 22:31:59 | | | |
Preklad

Správy sú základnou súčasťou každého distribuovaného systému. Umožňuje výrobcovi poslať správu ľubovoľnému počtu spotrebiteľov a nie je potrebné poznať žiadne informácie o spotrebiteľovi. To je veľká pomoc pre skutočne asynchrónnu a odpojujúcu komunikáciu.



Keď používate RabbitMQ, diagram vyššie ukazuje veľmi základnú, ale typickú štruktúru. Producent pošle správu prepínačovi. Podľa smerovacej logiky prepínač umiestni správu do fronty viazanej na prepínač. Presnejšie, ak ide o vysielací typ prepínača, kópia tejto správy bude opakovane odosielaná do každej fronty. Spotrebiteľ potom môže správu prijať a spracovať.

Dôležitým predpokladom pre úspešnú fungovanie vyššie uvedenej štruktúry pre producentov a spotrebiteľov je, že všetky komponenty RabbitMQ (t. j. fronty, prepínače a väzby) musia byť vytvorené vopred. Spotrebiteľ nemôže poslať správu prepínaču Ak prepínač neexistuje, nemôže spracovať správy z fronty, ktorá neexistuje.

Preto nie je ťažké pochopiť, že predtým, než producent/spotrebiteľ odošle/prijme správu, nech hodnota producent/spotrebiteľ vytvorí frontu, prepínač a záväzný vzťah. Pozrime sa na výhody a nevýhody každého z týchto spôsobov.

1. Rozlíšte zodpovednosti



Preklad obrázkov (1. Producent vytvorí prepínač 2. Spotrebiteľ vytvorí frontu a priradí ju k prepínaču)

Aby sa výrobcovia a spotrebitelia mohli úplne oddeliť, ideálne by výrobcovia poznali len informácie o prepínači (nie o rade), a spotrebitelia len o rade (nie o prepínači). Väzobný vzťah označuje vzťah medzi prepínačom a frontou

Jedným možným spôsobom je, že producent zabezpečí vytvorenie prepínača, a spotrebiteľ vytvorí frontu a priradí ju k prepínaču. Výhodou tejto metódy oddelenia je, že ak spotrebiteľ potrebuje frontu, stačí ju vytvoriť a naviazať ju podľa dopytu, pričom producent nemusí poznať žiadne informácie o fronte. Ale toto nie je dostatočné oddelenie: pretože spotrebiteľ musí poznať prepínač, aby ho mohol naviazať.

2. Producenti vytvárajú všetko

Keď je producent v prevádzke, môže byť nakonfigurovaný na vytvorenie všetkých požadovaných komponentov (prepínače, fronty a väzby). Výhodou tohto prístupu je, že sa žiadne správy nestrácajú (pretože fronta je už vytvorená a viazaná na prepínač a žiadny spotrebiteľ ju nemusí najskôr spustiť).

To však znamená, že producent musí poznať všetky fronty, ktoré je potrebné naviazať na prepínač. Toto je veľmi prepojený spôsob. Dôvodom je, že zakaždým, keď je potrebné pridať novú frontu, producent musí prekonfigurovať a nasadiť, aby vytvoril a zviazal fronty

3. Spotrebitelia vytvárajú všetko

Opakom je nechať spotrebiteľa vytvárať prepínače, fronty a väzby, ktoré potrebuje počas prevádzky. Rovnako ako v predchádzajúcom prístupe, táto metóda vytvára väzbu, pretože spotrebiteľ musí poznať informácie o prepínači, ku ktorému je pripútaný k fronte. Akékoľvek zmeny prepínača (napríklad premenovanie) znamenajú, že všetci spotrebitelia musia byť prekonfigurovaní a nasadení. Keď sú dlhé rady a spotrebitelia sú veľké, táto zložitosť môže byť neúnosná.

4. Ani jeden nevytvára nič

Úplne iný prístup je, že ani výrobca, ani spotrebiteľ nevytvárajú žiadne potrebné komponenty. Namiesto toho sa vytvára pomocou používateľského rozhrania admin pluginu alebo administrátorského CLI vopred. Táto metóda je založená na nasledujúcich výhodách:

  • Producenti a spotrebitelia môžu byť úplne oddelení. Výrobcovia poznajú len výmenu a spotrebitelia poznajú len frontu.
  • To sa dá jednoducho skriptovať a automatizovať ako súčasť nasadzovacieho pipeline
  • Akékoľvek zmeny, ako sú nové fronty, môžu byť pridané bez zásahu do existujúcich, nasadených vydavateľov a spotrebiteľov


súhrn

V distribuovaných systémoch sú asynchrónne správy užitočným spôsobom na oddelenie, ale aby zostali oddelené, je potrebné udržiavať efektívnu stratégiu na udržiavanie základnej štruktúry správ (v RabbitMQ sú to fronty, prepínače a väzby).

Hoci vydavateľské a spotrebiteľské služby môžu byť zodpovedné za vytvorenie toho, čo potrebujú sami, môžu byť nákladné z hľadiska počiatočnej straty správ, prepojenia a prevádzkovej údržby (z hľadiska konfigurácie a nasadenia).

Pravdepodobne najlepší spôsob, ako riešiť konfiguráciu systému správ tam, kde patrí: písať skripty mimo aplikácie. To zabezpečuje, že služby zostanú oddelené a že systém fronty sa môže dynamicky meniť podľa potreby bez ovplyvnenia veľkého počtu existujúcich služieb.

Originál:Prihlásenie na hypertextový odkaz je viditeľné.
Originálna angličtina:Prihlásenie na hypertextový odkaz je viditeľné.





Predchádzajúci:Úvod do IParsable rozhrania pridaného do .NET 7
Budúci:VSTO (IV) Vyplňte obrázok do Word dokumentu
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com