Úvod do protokolu AMQP
AMQP (Advanced Message Queuing Protocol) je aplikační standardní protokol, který poskytuje jednotné messaging služby a je otevřeným standardem pro aplikační protokoly navržené pro middleware orientovaný na zprávy. AMQP je síťový protokol pro předávání asynchronních zpráv mezi procesy.
Klienti a middleware pro zprávy založený na tomto protokolu mohou doručovat zprávy bez omezení různými klientskými a middleware produkty, různými vývojovými jazyky atd.
Hlavními charakteristikami AMQP jsou orientace na zprávy, frontování, směrování (včetně peer-to-peer a publikování/odběru), spolehlivost a bezpečnost. AMQP vynucuje chování poskytovatelů zpráv a klientů, což umožňuje skutečnou interoperabilitu mezi různými dodavateli.
Směrovací zprávy
V architektuře AMQP se úspěšné směrování zpráv skládá ze tří částí:
- Výměna: Kde producenti zveřejňují zprávy
- Fronty: Kde spotřebitelé dostávají zprávy
- Vazby: Jak jsou zprávy směrovány ze switche do konkrétní fronty
Výměny a vazby
Jak se tedy zpráva dostane do fronty? Kdykoli chcete doručit zprávu spotřebiteli, musíte ji nejprve poslat výměnníkovi. Na základě určitých pravidel nebo směrovacích klíčů pak RabbitMQ rozhodne, do které fronty má zprávy doručovat.
Pravidla – nebo směrovací klíče – vám umožňují navázat frontu na ústřednu. RabbitMQ se pokusí přiřadit směrovací klíč ve zprávě k použitému v vazbě. Zpráva je pak doručena do fronty na základě jednoho ze čtyř typů výměny: fanout, téma, přímý, hlavička
Fanout Exchange
Tento typ výměny vysílá všechny přijaté zprávy do všech front, které jsou k němu navázané. Jakékoliv směrovací klíče poskytnuté s publikovanou zprávou budou ignorovány.
Výměna témat
V tomto typu výměny jsou zprávy odesílány do fronty založené na směrovacím klíči. To znamená, že zprávy odeslané do ústředny témat musí mít specifický směrovací klíč, kterým musí být seznam slov oddělených body (např. 'acs.deviceoperations.'). Limit slov je 255 bajtů.
Vazební klíč musí být ve stejném formátu jako směrovací klíč. Proto budou zprávy odeslané s konkrétním směrovacím klíčem doručeny do každé fronty s odpovídajícím vazebným klíčem.
Vazby klíčů umožňují následující pravidla výrazů:
*(hvězdička) může nahradit pouze jedno slovo # (hash) může nahradit nula nebo více slov Když je fronta vázána klíčem "#" (hash), obdrží všechny zprávy bez ohledu na směrovací klíč, stejně jako při výměně Fanout fan-out.
Přímá výměna
Když je fronta deklarována, budeAutomaticky se navázejte na switch, který používá název fronty jako směrovací klíč。 Pokud se směrovací klíč shoduje, zpráva je doručena do příslušné fronty.
Výměna hlaviček
Hlavičkovy jsou do jisté míry podobné tématům, ale na rozdíl od témat je směrování založeno na klíčích trasování a směrovací hodnoty hlavičkových přepínačů jsou založeny na hlavičkových datech zprávy. Směrovací klíč pro změnu tématu je pouze řetězec, zatímco hlavičkový přepínač může být celé číslo a hash.
(Konec)
|