IT Broker komunikatów

RabbitMQ

Definicja #

RabbitMQ to open-source'owy broker wiadomości (message broker) napisany w Erlang, rozwijany od 2007 roku, aktualnie pod patronatem VMware/Broadcom. Implementuje protokół AMQP 0-9-1 oraz obsługuje MQTT, STOMP i inne przez wtyczki.

Kluczowe koncepcje RabbitMQ:

  • Producer — komponent wysyłający wiadomości do brokera
  • Exchange — punkt wejścia wiadomości; decyduje do jakich kolejek je przekazać (typy: direct, fanout, topic, headers)
  • Queue — bufor przechowujący wiadomości czekające na przetworzenie
  • Consumer — komponent odbierający i przetwarzający wiadomości
  • Binding — reguła łącząca exchange z kolejką przez routing key
  • Virtual Host — logiczna izolacja zasobów w ramach jednego brokera

RabbitMQ gwarantuje różne poziomy niezawodności dostarczenia wiadomości (at-most-once, at-least-once) oraz obsługuje Dead Letter Queue (DLQ) dla nieprzetworzoych komunikatów.

Zastosowania #

RabbitMQ jest stosowany wszędzie, gdzie potrzebna jest asynchroniczna komunikacja:

  • Asynchroniczne przetwarzanie zadań: wysyłka emaili, generowanie raportów, konwersja plików
  • Architektura mikroserwisów — luźne powiązanie (loose coupling) komponentów systemu
  • Load leveling — buforowanie skokowego ruchu przed wolniejszymi konsumentami
  • Event-driven architecture — propagacja zdarzeń domenowych między serwisami
  • Systemy kolejkowania zamówień, powiadomień i przetwarzania płatności

Ścieżka nauki #

Przed nauką RabbitMQ warto znać podstawy architektury aplikacji webowych i pojęcia takie jak asynchroniczność.

Zacznij od:

  • Koncepcja message brokera — producent, konsument, kolejka
  • Instalacja RabbitMQ przez Docker i konfiguracja Management UI
  • Pierwsze przykłady: publish/subscribe, work queues w wybranym języku (Python, Java, C#)

Następnie opanuj:

  • Typy exchange: direct, fanout, topic — kiedy używać każdego
  • Potwierdzenia wiadomości (acks), DLQ i obsługa błędów
  • Trwałość wiadomości (persistent messages, durable queues)
  • Clustering i high availability w środowiskach produkcyjnych
  • Alternatywy: Apache Kafka (streaming), Azure Service Bus, AWS SQS

FAQ #

Czym różni się RabbitMQ od Apache Kafka?
RabbitMQ to tradycyjny broker wiadomości (push-based, krótkotrwałe wiadomości), Kafka to platforma streamingowa (pull-based, długotrwałe przechowywanie zdarzeń). RabbitMQ lepiej sprawdza się w task queues, Kafka w event streaming i analityce.
Ile zarabia inżynier znający RabbitMQ?
Znajomość RabbitMQ jest zwykle częścią szerszego profilu backend/DevOps. Inżynier backend z doświadczeniem w brokerach wiadomości zarabia w Polsce od 12 000 do 25 000 zł brutto miesięcznie.
Czy RabbitMQ jest darmowy?
Tak, RabbitMQ jest open source i darmowy. Dostępna jest też komercyjna wersja CloudAMQP (hosting w chmurze) z planami od darmowego do enterprise.
Jak długo uczyć się RabbitMQ?
Podstawy działania kolejek i pierwszych integracji można opanować w 1–2 tygodnie. Zaawansowana konfiguracja klastrów i strategii HA wymaga kilku tygodni praktyki.
Ostatnia aktualizacja:

Powiązane hasła

Technologie i biblioteki, które najczęściej pojawiają się razem z RabbitMQ w ogłoszeniach.

Cały słownik IT

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.