Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 2516|Válasz: 0

RabbitMQ: Ki fogja létrehozni a Queue-t és a Exchange-t

[Linket másol]
Közzétéve 2023. 05. 03. 22:31:59 | | | |
Fordítás

Az üzenetküldés minden elosztott rendszer alapvető része. Lehetővé teszi a gyártó számára, hogy bármilyen fogyasztónak üzenetet küldjön, és nem szükséges semmilyen információt tudni a fogyasztóról. Ez nagyszerű segítség a valóban aszinkron és leszakadó kommunikációhoz.



Amikor a RabbitMQ-t használod, a fenti diagram egy nagyon alap, de tipikus szerkezetet mutat. Egy producer üzenetet küld a kapcsolónak. Az útvonalvezetési logika szerint a kapcsoló az üzenetet a kapcsolóhoz kötött sorba helyezi. Konkrétabban, ha sugárzó típusú kapcsolóról van szó, akkor ennek az üzenetnek a másolatát minden sorba ismételten elküldik. Ezután a fogyasztó átveszheti és feldolgozhatja az üzenetet.

Fontos feltételezés arra, hogy a fenti struktúra sikeres legyen a termelők és a fogyasztók számára, hogy minden RabbitMQ komponensét (azaz sorokat, kapcsolókat és kötéseket) előre létre kell hozni. Egy fogyasztó nem küldhet üzenetet egy kapcsolónak. Ha a switch nem létezik, akkor a fogyasztó nem dolgozhat fel üzeneteket egy olyan sorból, amely nem létezik.

Ezért nem nehéz megérteni, hogy mielőtt a gyártó/fogyasztó elküldi/kapná az üzenetet, hagyjuk, hogy egy termelő/fogyasztói érték hozzon létre sort, kapcsolót és kötési kapcsolatot. Nézzük meg mindkét módszer előnyeit és hátrányait.

1. Megkülönböztetni a felelősségeket



Képfordítás (1. Producer létrehoz egy switchet 2. A fogyasztó létrehoz egy sort, és köti a sort a switch-hez)

Ahhoz, hogy a termelők és a fogyasztók teljesen szétváljanak, ideális esetben a gyártók csak a kapcsolóról ismernek információkat (nem a sort), míg a fogyasztók csak a sorról (nem a kapcsolóról). A kötési kapcsolat a kapcsoló és a sor közötti kapcsolatot jelzi

Az egyik lehetséges mód, hogy a gyártó kezeli a switch létrehozását, a fogyasztó pedig létrehozza a sort, és köti a switch-hez. Ennek a szétválasztási módszernek az előnye, hogy ha a fogyasztónak szüksége van egy sorra, egyszerűen szükség van egy sorba létrehozására, és a kereslet szerint kötöznie kell, és a gyártónak nem kell információt tudnia a sorról. De ez nem elegendő leválasztás: mert a fogyasztónak ismernie kell a kapcsolót ahhoz, hogy kötözze meg.

2. A producerek mindent megalkotnak

Amikor a producer fut, konfigurálható úgy, hogy létrehozza az összes szükséges komponenst (switchek, sorok és kötések). Ennek a megközelítésnek előnye, hogy nem vesznek el üzenetek (mert a sor már létre van hozva és kötve a kapcsolóhoz, és nem kell először elindítania a felhasználónak).

Ez azonban azt jelenti, hogy a producernek ismernie kell az összes sort, amit a kapcsolóhoz kell kötni. Ez egy nagyon összekapcsolt mód. Ennek oka, hogy minden alkalommal, amikor új sort kell hozzáadni, a producernek újra konfigurálnia és telepítenie kell, hogy sorokat hozzon létre és köthessen

3. A fogyasztók mindent megalkotnak

Az ellenkezője az, hogy a fogyasztó hozza létre a kapcsolókat, sorokat és kötéseket, amire szüksége van, amikor fut. Ahogy az előző megközelítésben, ez a módszer is összekapcsolást eredményez, mert a fogyasztónak tudnia kell az adott kapcsolóról szóló információkat, amelyhez a sorhoz van kötve. Bármilyen változás a kapcsolón (például átnevezés) azt jelenti, hogy minden felhasználót át kell konfigurálni és telepíteni. Nagy sorok és fogyasztók esetén ez a bonyolultság megfékelő lehet.

4. Egyik sem hoz létre semmit

Teljesen más megközelítés, hogy sem a gyártó, sem a fogyasztó nem készít semmilyen szükséges alkatrészt. Ehelyett előzetesen az admin plugin vagy az admin CLI felhasználói felületén keresztül hozza létre. Ez a módszer a következő előnyökön alapul:

  • A termelők és a fogyasztók teljesen elválaszthatódhatnak. A producerek csak a tőzsdét ismerik, a fogyasztók pedig csak a sort.
  • Ez könnyen szkripálható és automatizálható a telepítési folyamat részeként
  • Bármilyen változtatás, például új sorok, hozzáadható anélkül, hogy érintenénk a létező, telepített kiadókat vagy fogyasztókat


összefoglalás

Elosztott rendszerekben az aszinkron üzenetek hasznosak a szétválasztásnak, de ahhoz, hogy leválasztva maradjanak, szükséges hatékony stratégiát fenntartani az alapul szolgáló üzenetküldő struktúra fenntartására (a RabbitMQ-ban ezek sorok, kapcsolók és kötések).

Bár a kiadó és a fogyasztói szolgáltatások maguk felelősek lehetnek azért, hogy megteremtsék a szükséges dolgokat, ezek költségesek lehetnek az első üzenetvesztés, összekapcsolás és működési karbantartás (konfiguráció és telepítés szempontjából) szempontjából.

Valószínűleg a legjobb módja annak, hogy az üzenetküldő rendszer konfigurációját ott kezelje, ahol az kell: írj szkripteket az alkalmazáson kívül. Ez biztosítja, hogy a szolgáltatások elkülönüljenek egymástól, és a sorrendszer dinamikusan változhasson szükség szerint anélkül, hogy sok meglévő szolgáltatást érintene.

Eredeti:A hiperlink bejelentkezés látható.
Eredeti angol:A hiperlink bejelentkezés látható.





Előző:Bevezetés az IParsable felülethez a .NET 7-hez
Következő:VSTO (IV) Töltse ki a képet egy Word dokumentumba
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com