Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 8397|Svar: 0

Introduktion til de tre udvekslingstilstande (fanout, direkte og emne) i RabbitMQ

[Kopier link]
Opslået på 29/03/2018 14.30.45 | | | |
Indførelsen:
I RabbitMQ accepteres alle beskeder indsendt af producenter af Exchange, som derefter videresender dem til Kø til lagring i henhold til en specifik politik
RabbitMQ tilbyder fire typer udvekslinger: fanout, direkte, emne og header
Header-tilstanden bruges mindre i praksis, og denne artikel sammenligner kun de første tre tilstande.

1. Direkte udveksling


Alle beskeder, der sendes til Direct Exchange, videresendes til den kø, der er angivet i RouteKey.

1. Generelt kan du bruge Exchange, der følger med rabbitMQ:" (navnet på Exchange er en tom streng, herefter kaldet standard Exchange).

2. I denne tilstand er der ikke behov for at udføre nogen bindingsoperationer på Exchange

3. En "RouteKey" kræves til beskeder, hvilket blot kan forstås som navnet på køen, der skal sendes til.

4. Hvis kønavnet angivet i RouteKey ikke findes i vhosten, droppes beskeden.

2. Udveksling af udpuckning


Alle beskeder, der sendes til Fanout-udvekslingen, videresendes til alle køer bundet til den udveksling.

1. Det kan forstås som et mønster i routingtabellen

2. Denne tilstand kræver ikke en RouteKey

3. Denne tilstand kræver, at Exchange bindes til køen på forhånd, én Exchange kan binde flere køer, og én kø kan bindes til flere børser.

4. Hvis den Exchange, der modtog beskeden, ikke er bundet til nogen Kø, bliver beskeden droppet.

3. Emneudveksling


Alle beskeder, der sendes til Topic Exchange, videresendes til alle køer, der interesserer sig for de emner, der er angivet i RouteKey

1. Dette mønster er mere komplekst, kort sagt, hver kø har sit eget emne, alle beskeder har en "titel" (RouteKey), og Exchange vil videresende beskeden til alle køer, der kan matche RouteKey for det pågældende emne.

2. Denne tilstand kræver en RouteKey, måske binding af Exchange og Queue på forhånd.

3. Når du binder, angiv et emne, som køen interesserer sig for, såsom "#.log.#", for at indikere, at køen interesserer sig for alle beskeder relateret til logfiler (en besked med RouteKey på "MQ.log.error" vil blive videresendt til køen).

4. "#" betyder 0 eller flere nøgleord, og "" betyder ét nøgleord. For eksempel "log." Den kan matche "log.warn", men kan ikke matche "log.warn.timeout"; Men "log.#" matcher ovenstående.

5. Tilsvarende, hvis Exchange ikke finder en kø, der matcher RouteKey, vil den droppe denne besked.




Tidligere:Brug XPosed til at omgå stærk validering af Android SSL-certifikater
Næste:.net/c# RabbitMQ forbindelsesafbrydelse - afbrydelse og genforbindelse
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com