Wprowadzenie do protokołu AMQP
AMQP (Advanced Message Queuing Protocol) to protokół standardowy na warstwie aplikacji, który zapewnia zunifikowane usługi komunikacji i jest otwartym standardem dla protokołów warstwy aplikacji zaprojektowanych dla oprogramowania pośredniczącego na wiadomościach. AMQP to protokół sieciowy do przekazywania asynchronicznych wiadomości między procesami.
Klienci i oprogramowanie pośredniczące wiadomości oparte na tym protokole mogą dostarczać wiadomości bez ograniczeń ze strony różnych produktów klient/middleware, różnych języków rozwoju itp.
Główne cechy AMQP to zorientowanie się na komunikaty, kolejkowa, routing (w tym peer-to-peer i publikowanie/subskrypcja), niezawodność oraz bezpieczeństwo. AMQP egzekwuje zachowanie dostawców wiadomości i klientów, umożliwiając prawdziwą interoperacyjność między różnymi dostawcami.
Wiadomości kierowania
W architekturze AMQP każde skuteczne routowanie wiadomości składa się z trzech części:
- Exchange: Gdzie producenci publikują wiadomości
- Kolejki: Gdzie konsumenci otrzymują wiadomości
- Powiązania: Jak wiadomości są kierowane z przełącznika do konkretnej kolejki
Wymiany i oprawy
Jak więc wiadomość dociera do kolejki? Za każdym razem, gdy chcesz przekazać wiadomość konsumentowi, musisz najpierw wysłać ją do wymiennika. Następnie, na podstawie określonych reguł lub kluczy routingu, RabbitMQ zdecyduje, do której kolejki ma dostarczać wiadomości.
Reguły – czyli klucze routingowe – pozwalają przypisać kolejkę do centrali. RabbitMQ spróbuje dopasować klucz routingu w wiadomości do klucza użytego w przypisaniu. Wiadomość jest następnie dostarczana do kolejki na podstawie jednego z czterech typów wymiany: fanout, temat, bezpośredni, nagłówek
Wymiana Fanout
Ten typ wymiany nadaje wszystkie otrzymane wiadomości do wszystkich kolejek powiązanych z nią. Wszelkie klucze routingowe dostarczone w opublikowanej wiadomości zostaną zignorowane.
Wymiana tematów
W tego typu wymianie wiadomości są wysyłane do kolejki opartej na kluczu routingu. Oznacza to, że wiadomości wysyłane do wymiany tematów muszą mieć określony klucz routingu, którym musi być lista słów oddzielonych punktami (np. 'acs.deviceoperations.'). Limit sformułowania wynosi 255 bajtów.
Klucz wiązania musi być w tym samym formacie co klucz routingu. Dlatego wiadomości wysyłane z określonym kluczem routingowym będą dostarczane do każdej kolejki powiązanej z dopasowanym kluczem wiązającym.
Klucze wiązające pozwalają na następujące reguły wyrażeń:
*(gwiazdka) może zastąpić tylko jedno słowo # (hash) może zastąpić zero lub więcej słów Gdy kolejka jest powiązana kluczem wiązającym "#" (hash), otrzyma wszystkie wiadomości niezależnie od klucza routingu, podobnie jak w wymianie Fanout fan-out.
Bezpośrednia wymiana
Gdy kolejka zostanie zadeklarowana, będzieAutomatycznie przypisuj przełącznik, który używa nazwy kolejki jako klucza routingu。 Jeśli klucz routingu się zgadza, wiadomość jest dostarczana do odpowiedniej kolejki.
Wymiana nagłówków
Przełączniki nagłówkowe są w pewnym stopniu podobne do przełączników tematów, ale w przeciwieństwie do przełączników tematów, trasowanie opiera się na kluczach trasy, a wartości routingu przełączników nagłówków na podstawie danych nagłówkowych wiadomości. Klucz routingowy przełącznika tematu to tylko ciąg znaków, natomiast przełącznik nagłówka może być liczbą całkowitą i skrótem.
(Koniec)
|