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:
Ü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.
Az AMPQ implementáció, üzenetsorokat, exchange-eket, bindig-eket futási időben létrehozzák és módosíthatóvá is teszik.
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:
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.