Obsah

RabbitMQ

RabbitMQ je softwarový prostředník pro zasílání zpráv (Message Broker). Jeho hlavním úkolem je přijímat zprávy od jedné aplikace (Producer) a doručovat je dalším aplikacím (Consumer).

Funguje jako „poštovní schránka“: když aplikace odešle zprávu, RabbitMQ ji bezpečně uloží do fronty a zajistí její doručení, i když je cílová aplikace momentálně zaneprázdněná nebo offline.

Základní architektura

RabbitMQ využívá protokol AMQP (Advanced Message Queuing Protocol). Komunikace probíhá přes tyto klíčové prvky:

Typy směrování (Exchange Types)

RabbitMQ je unikátní svou flexibilitou v tom, jak zprávy rozděluje:

Hlavní výhody použití

Srovnání: RabbitMQ vs. Apache Kafka

Vlastnost RabbitMQ Apache Kafka
Typ Tradiční Message Broker. Distribuovaná streaming platforma.
Způsob práce Zpráva se po doručení a potvrzení smaže. Zprávy zůstávají uloženy (log) a lze je číst opakovaně.
Priorita Bohaté možnosti směrování a prioritizace. Extrémní propustnost dat a historická analýza.
Použití Komplexní business logika, e-commerce, úkoly na pozadí. Big Data, real-time analytika, sledování kliknutí (telemetrie).

Příklady z praxe

  1. E-shopy: Po kliknutí na „Koupit“ se do RabbitMQ pošle zpráva. Jeden Consumer pošle potvrzovací e-mail, druhý zarezervuje zboží ve skladu a třetí připraví podklady pro dopravce.
  2. Microservices: Komunikace mezi desítkami malých služeb, které se navzájem neblokují.
Poznámka pro vývojáře: RabbitMQ je napsán v jazyce Erlang, což mu propůjčuje neuvěřitelnou stabilitu a schopnost zvládat tisíce souběžných spojení s minimální režií.

Viz také: Mikroslužby, AMQP, Apache Kafka, Asynchronní zpracování