Felhasználói eszközök

Eszközök a webhelyen


tanszek:oktatas:informacios_rendszerek_integralasa:uezenet_kezelo_rendszerek

Üzenet kezelő rendszerek (message-oriented middleware)

Az üzenetkezelő rendszerek működésének részleteit az AMQP szabványban részletesen olvashatjuk: https://www.rabbitmq.com/resources/specs/amqp0-9-1.pdf

Az AMQP (Advanced Message Queuing Protocol) az üzenetkezelő rendszerek (message-oriented middleware) egyik szabványa, amely lehetővé teszi a szoftverkomponensek közötti hatékony kommunikációt. Az AMQP protokoll számos implementációja létezik, amelyek ugyanazt az alapvető Advanced Message Queuing Model-t (AMQ modell) modellt használják.

Az AMQ modell a következő főbb elemekből áll:

  • Üzenet (Message): Az AMQP modellben az üzenet az adat, amelyet az alkalmazások között továbbítunk.
  • Küldő (Publisher): A komponens, ami az üzenetet kibocsátja a hálózaton keresztül.
  • Címzett/fogyasztó (Consumer): Az a komponens, amely az üzenetet fogadja.

Üzenetközvetítő (Message Broker): Az üzenetközvetítő a AMQ modell központi, amely fogadja az üzeneteket a Küldőktől, majd továbbítja őket a megfelelő címzetthez.

Az AMQ modell két további fontos eleme a címzési modell és az üzenetformátum. Az AMQ modell használ egy publikáló-feliratkozó (publish-subscribe) címzési modellt, amely lehetővé teszi az üzenetek széles körű elosztását a Címzettek között. Az üzenetek formátumát általában a JSON, XML, vagy az AMQP saját bináris formátumában adják meg.

Az AMQ modell egy nagyon hatékony és rugalmas modell, amely a hatékony üzenetkommunikáció mellett a skálázhatóságot és a kézbesítés megbízhatóságát is támogatja. Az AMQ modell több szabványosított funkcióval is rendelkezik, például a biztonsági mechanizmusokkal, a tranzakciókezeléssel és egyszeri kézbesítési lehetőséggel.

Hasonlóság az email kezeléssel

  • az üzenetsor olyan, mint egy levelesláda
  • a fogyasztó vagy címzett megfelel a email kliensnek
  • az „Exchange” olyan szerepet tölt be, mint a MTA (mail transfer agent), ami megvizsgálja a leveleket és a tartalmuk alapján dönt a továbbításról egy beépített szabálybázis felhasználásával.
  • a routing key - útvonalválasztó kulcs, olyan mint a To: Cc: vagy Bcc címek
  • a binding az MTA útvonalválasztó táblájának felel meg logikailag

Az AMPQ implementáció, üzenetsorokat, exchange-eket, bindig-eket futási időben létrehozzák és módosíthatóvá is teszik.

Üzenetek életciklusa

Az AMQP üzenetek életciklusa az üzenet küldője (Publisher) és az üzenet címzettje (Consumer) közötti kommunikáció során több fázisra osztható. Az alábbiakban nézzük meg az AMQP üzenetek életciklusának fontosabb fázisait:

  • Kiadás (Publishing): Az üzenet küldője (Publisher) létrehozza az üzenetet és továbbítja azt a címezhető objektumokhoz (Exchange), amelyek felelősek az üzenet továbbításáért az üzenetsorokba (Queue). Egyszerűbb esetekben közvetlenül az üzenetsorok is megcímezhetők.
  • Továbbítás (Routing): Az Exchange az üzenet címzettjei (Consumers) által megadott szempontok (kulcsok) alapján továbbítja az üzeneteket az egyes üzenetsorokba.
  • Tárolás (Storing): Az üzenetek tárolásra kerülnek az üzenetsorokban, amíg a címzett el nem éri azokat.
  • Fogyasztás (Consuming): Az üzenet címzettje (Consumer) eléri az üzenetet a megfelelő sorból, és feldolgozza azt.
  • Visszaigazolás (Acknowledgment): A Consumer visszaigazolja az üzenet feldolgozását, hogy az Exchange tudja, hogy az üzenet sikeresen átment a Consumerhez.
  • Törlés (Deletion): Az üzenetet törlik az üzenetsorból, hogy ne kerüljön újra feldolgozásra.

Az AMQP üzenetek életciklusa biztosítja az üzenetek megbízható továbbítását az alkalmazások között, valamint lehetővé teszi a szigorú szabályok alapján történő üzenetkezelést, például az üzenetek visszautasítását, az üzenetek késleltetését és az üzenetek újraküldését, ha azok nem érnek célba az első próbálkozásra. Un. 'halott levél' csatornát (DLQ/DLX) is létre lehet hozni, amibe automatikusan belekerülnek a kézbesítetlen vagy visszautasított üzenetek.

tanszek/oktatas/informacios_rendszerek_integralasa/uezenet_kezelo_rendszerek.txt · Utolsó módosítás: 2023/05/04 21:02 szerkesztette: knehez