Wstęp do Podstawowych Pojęć RabbitMQ

Diagram Koncepcji RabbitMQ

Diagram koncepcji RabbitMQ

Wyjaśnienie Pojęć

Wiadomość

Wiadomość składa się z nagłówka wiadomości (czyli dodatkowych informacji konfiguracyjnych) oraz treści wiadomości.

Wydawca

Producent wiadomości, czyli aplikacja kliencka publikująca wiadomości do wymiany.

Wymiana (Exchange)

Wymiana służy do odbierania wiadomości wysłanych przez producentów i przekierowywania tych wiadomości do kolejek na serwerze.

Istnieją cztery rodzaje wymian:

  • Typu Direct: Porównuje klucz routingu w wiadomości z kluczami routingu powiązanymi ze wszystkimi wiązaniami wymiany. Jeśli pasują, wiadomość jest wysyłana do odpowiadającej kolejki tego powiązania.

  • Typu Topic: Porównuje klucz routingu w wiadomości z kluczami routingu powiązanymi ze wszystkimi wiązaniami wymiany. Jeśli jest dopasowanie, wiadomość jest wysyłana do odpowiadającej kolejki tego powiązania.

  • Typu Fanout: Bezpośrednio przekazuje wiadomości do odpowiadających kolejek wszystkich wiązań, ignorując klucz routingu podczas przekazywania.

  • Typu Headers: Dopasowuje nagłówki w wiadomości z parametrami powiązanymi ze wszystkimi wiązaniami wymiany. Jeśli jest dopasowanie, wiadomość jest wysyłana do odpowiadającej kolejki tego powiązania (mniej popularne, podobne do typu Direct).

Uwaga: Szczegółowe wyjaśnienia typów wymian zostaną przedstawione w kolejnych sekcjach dotyczących trybów pracy. To tylko ogólny przegląd.

Wiązanie (Binding)

Relacja używana do nawiązania połączenia między kolejkami wiadomości a wymianami.

Kolejka (Queue)

Kolejka wiadomości używana do przechowywania wiadomości do momentu dostarczenia ich konsumentom. Pełni funkcję zarówno kontenera na wiadomości, jak i punktu końcowego dla wiadomości. Wiadomość może być dostarczona do jednej lub więcej kolejek. Wiadomości pozostają w kolejce, oczekując na połączenie konsumentów i pobranie ich.

Połączenie (Connection)

Połączenie sieciowe, takie jak połączenie TCP.

Kanał (Channel)

Kanał to wirtualne połączenie ustanowione w ramach rzeczywistego połączenia TCP. Wszystkie polecenia AMQP są wysyłane za pośrednictwem kanałów, czy to publikowanie wiadomości, subskrybowanie kolejek czy odbieranie wiadomości. Ten projekt wprowadza pojęcie kanałów w celu ponownego wykorzystania pojedynczego połączenia TCP, ponieważ ustanowienie i zakończenie połączeń TCP jest kosztowne dla systemu operacyjnego.

Konsument

Konsument wiadomości, reprezentujący aplikację kliencką pobierającą wiadomości z kolejek wiadomości.

Host Wirtualny

Host wirtualny reprezentuje zestaw wymian, kolejek wiadomości i powiązanych obiektów. Jest to niezależna domena serwerowa, która współdzieli tożsamość uwierzytelniania i środowisko szyfrowania. Każdy host wirtualny jest w gruncie rzeczy mini-wersją serwera RabbitMQ, posiadającą własne kolejki, wymiany, wiązania i mechanizmy uprawnień.

Hosty wirtualne są podstawowym pojęciem w AMQP i muszą być określone podczas nawiązywania połączenia. Domyślny host wirtualny dla RabbitMQ to /.

Uwaga: Host wirtualny jest formą strategii izolacji zasobów, pozwalającą na partycjonowanie wielu izolowanych obszarów w ramach tego samego serwera RabbitMQ.

Broker

Odpowiada za fizyczną jednostkę serwera kolejki wiadomości.