Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 8397|Antwoord: 0

Introductie tot de drie uitwisselingsmodi (fanout, direct en topic) van RabbitMQ

[Link kopiëren]
Geplaatst op 29-03-2018 14:30:45 | | | |
Introductie:
In RabbitMQ worden alle berichten die door producenten worden ingediend geaccepteerd door Exchange, die ze vervolgens doorstuurt naar de wachtrij voor opslag volgens een specifiek beleid
RabbitMQ biedt vier soorten uitwisselingen: fanout, direct, topic en header
De headermodus wordt in de praktijk minder gebruikt, en dit artikel vergelijkt alleen de eerste drie modi.

1. Directe uitwisseling


Alle berichten die naar Direct Exchange worden gestuurd, worden doorgestuurd naar de Queue die in de RouteKey is gespecificeerd.

1. In het algemeen kun je de Exchange gebruiken die bij rabbitMQ wordt geleverd:" (de naam van de Exchange is een lege string, hierna aangeduid als de standaard Exchange).

2. In deze modus is het niet nodig om bindingsbewerkingen op Exchange uit te voeren

3. Een "RouteKey" is vereist voor berichten, wat eenvoudig kan worden opgevat als de naam van de wachtrij waarnaar gestuurd moet worden.

4. Als de wachtrijnaam die in de RouteKey is gespecificeerd niet bestaat in de vhost, wordt het bericht verwijderd.

2. Uitruiling van de uitwaaier


Alle berichten die naar de Fanout Exchange worden gestuurd, worden doorgestuurd naar alle wachtrijen die aan die Exchange zijn gekoppeld.

1. Het kan worden begrepen als een patroon van de routeringstabel

2. Deze modus vereist geen RouteKey

3. Deze modus vereist dat Exchange vooraf aan de wachtrij wordt gekoppeld, één Exchange kan meerdere wachtrijen binden, en één wachtrij kan aan meerdere beurzen worden gekoppeld.

4. Als de Exchange die het bericht ontving niet aan een Queue is gebonden, wordt het bericht verwijderd.

3. Onderwerpuitwisseling


Alle berichten die naar de Topic Exchange worden gestuurd, worden doorgestuurd naar alle wachtrijen die zich bekommeren om de onderwerpen die in de RouteKey zijn gespecificeerd,

1. Dit patroon is complexer, simpel gezegd, elke wachtrij heeft zijn eigen onderwerp van zorg, alle berichten hebben een "titel" (RouteKey), en Exchange zal het bericht doorsturen naar alle wachtrijen die fugue kunnen overeenkomen met de RouteKey van het betreffende onderwerp.

2. Deze modus vereist een RouteKey, mogelijk vooraf het binden van Exchange en Queue.

3. Bij het binden geef je een onderwerp aan waar de wachtrij om geeft, zoals "#.log.#" om aan te geven dat de wachtrij geeft om alle berichten die met logs te maken hebben (een bericht met een RouteKey van "MQ.log.error" wordt doorgestuurd naar de wachtrij).

4. "#" betekent 0 of meerdere trefwoorden, en "" betekent één trefwoord. Bijvoorbeeld, "log." Het kan "log.warn" overeenkomen, maar niet "log.warn.timeout"; Maar "log.#" komt overeen met het bovenstaande.

5. Evenzo, als Exchange geen wachtrij vindt die overeenkomt met de RouteKey, zal het dit bericht laten vallen.




Vorig:Gebruik XPosed om sterke validatie van Android SSL-certificaten te omzeilen
Volgend:.net/c# RabbitMQ verbinding verbreken - verbinding verbreken en herverbinden
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com