Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 8397|Odpowiedź: 0

Wprowadzenie do trzech trybów wymiany (fanout, direct i topic) w RabbitMQ

[Skopiuj link]
Opublikowano 29.03.2018 14:30:45 | | | |
Wprowadzenie:
W RabbitMQ wszystkie wiadomości przesyłane przez producentów są akceptowane przez Exchange, który następnie przekazuje je do Queue do przechowywania zgodnie z określoną polityką
RabbitMQ oferuje cztery typy wymian: fanout, bezpośredni, tematyczny i nagłówkowy
Tryb nagłówka jest w praktyce rzadziej używany, a ten artykuł porównuje jedynie pierwsze trzy tryby.

1. Bezpośrednia wymiana


Wszystkie wiadomości wysyłane do Direct Exchange są przekazywane do kolejki określonej w RouteKey.

1. Ogólnie rzecz biorąc, możesz użyć Exchange dołączonego do rabbitMQ:" (nazwa Exchange to pusty ciąg znaków, dalej nazywany domyślną Exchange).

2. W tym trybie nie ma potrzeby wykonywania żadnych operacji wiązania na Exchange

3. Do wysyłania wiadomości wymagany jest "RouteKey", który można po prostu zrozumieć jako nazwę kolejki do wysłania.

4. Jeśli nazwa kolejki podana w RouteKey nie istnieje w vhost, wiadomość zostaje odrzucona.

2. Wymiana Fanout


Wszystkie wiadomości wysyłane do Fanout Exchange są przekazywane do wszystkich kolejek powiązanych z tą Centralą.

1. Można ją rozumieć jako wzór tablicy routingu

2. Ten tryb nie wymaga RouteKey

3. Ten tryb wymaga wcześniejszego powiązania Exchange z kolejką – jedna Giełda może wiązać wiele kolejek, a jedna może być powiązana z wieloma Centralami.

4. Jeśli Exchange, który otrzymał wiadomość, nie jest powiązany z żadną kolejką, wiadomość zostaje odrzucona.

3. Wymiana tematów


Wszystkie wiadomości wysyłane do Topic Exchange są przekazywane do wszystkich kolejek, które zajmują się tematami określonymi w RouteKey

1. Ten wzorzec jest bardziej złożony, mówiąc wprost: każda kolejka ma własny temat zainteresowania, wszystkie wiadomości mają "tytuł" (RouteKey), a Exchange przekieruje wiadomość do wszystkich kolejek, które mogą w pewnym stopniu odpowiadać RouteKey danego tematu.

2. Ten tryb wymaga RouteKey, być może wcześniej wiązającego Exchange i Queue.

3. Podczas wiązania podaj temat, na którym zależy kolejce, na przykład "#.log.#", aby wskazać, że kolejka dba o wszystkie wiadomości związane z logami (wiadomość z RouteKey "MQ.log.error" zostanie przekazana do kolejki).

4. "#" oznacza 0 lub kilka słów kluczowych, a "" oznacza jedno słowo kluczowe. Na przykład "log". Może dopasować "log.warn", ale nie może dopasować "log.warn.timeout"; Ale "log.#" pasuje do powyższego.

5. Podobnie, jeśli Exchange nie znajdzie kolejki odpowiadającej RouteKey, odrzuca tę wiadomość.




Poprzedni:Użyj XPosed do obejścia silnej weryfikacji certyfikatów SSL Androida
Następny:.net/c# Rozłączenie połączenia RabbitMQ – rozłączenie i ponowne połączenie
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com