AMQP je otevřený internetový protokol aplikační vrstvy určený pro asynchronní zasílání zpráv. Na rozdíl od HTTP, které je primárně typu požadavek-odpověď, AMQP se zaměřuje na spolehlivé doručení zpráv, jejich řazení do front a zajištění bezpečnosti.
Nejznámější implementací tohoto protokolu je RabbitMQ.
AMQP definuje tři základní komponenty, které zajišťují cestu zprávy od odesílatele k příjemci:
Místo, kam odesílatel (Producer) posílá své zprávy. Exchange zprávu přijme a na základě definovaných pravidel (Bindings) ji pošle do jedné nebo více front.
Úložiště, kde zprávy čekají, dokud si je nevyzvedne příjemce (Consumer). Fronta může být dočasná nebo perzistentní (zůstane i po restartu serveru).
Pravidlo, které říká: „Zprávy z této ústředny s tímto klíčem patří do této konkrétní fronty.“
V praxi se nejčastěji setkáte se dvěma verzemi, které jsou technicky velmi odlišné:
| Verze | Charakteristika |
|---|---|
| AMQP 0-9-1 | Používá ji RabbitMQ. Definuje přesnou architekturu (Exchanges, Queues). Je velmi populární pro svou jednoduchost a bohaté funkce směrování. |
| AMQP 1.0 | ISO standard (používají např. Azure Service Bus nebo Apache Qpid). Je to čistě transportní protokol, který nediktuje vnitřní architekturu brokera, což zvyšuje flexibilitu na úkor složitosti. |
| Protokol | Zaměření | Hlavní rozdíl |
|---|---|---|
| HTTP | Webové služby | Synchronní (čeká se na odpověď). |
| MQTT | IoT (Internet věcí) | Extrémně lehký, ale méně funkcí pro komplexní směrování. |
| AMQP | Enterprise Messaging | Robustní, bezpečné, podporuje transakce a složitou logiku. |
— Viz také: RabbitMQ, Mikroslužby, Asynchronní zpracování, MQTT