Wstęp do Podstawowych Pojęć 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.