Obsah

AMQP (Advanced Message Queuing Protocol)

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.

Klíčové vlastnosti

Model AMQP (Entity)

AMQP definuje tři základní komponenty, které zajišťují cestu zprávy od odesílatele k příjemci:

1. Exchange (Ústředna)

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.

2. Queue (Fronta)

Ú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).

3. Binding (Vazba)

Pravidlo, které říká: „Zprávy z této ústředny s tímto klíčem patří do této konkrétní fronty.“

Verze protokolu: 0-9-1 vs. 1.0

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.

Srovnání s ostatními protokoly

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.

Výhody pro vývojáře

Viz také: RabbitMQ, Mikroslužby, Asynchronní zpracování, MQTT