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

Udsigt: 3645|Svar: 0

Detaljeret forklaring af RabbitMQ AMQP-meddelelsesarkitekturen

[Kopier link]
Opslået på 14/08/2022 23.32.43 | | | |
Introduktion til AMQP-protokollen

AMQP (Advanced Message Queuing Protocol) er en applikationslagsstandardprotokol, der tilbyder ensartede beskedtjenester, og er en åben standard for applikationslagsprotokoller designet til meddelelsesorienteret middleware. AMQP er en netværksprotokol til udveksling af asynkrone beskeder mellem processer.

Klienter og beskedmiddleware baseret på denne protokol kan levere beskeder uden at være begrænset af forskellige klient-/middlewareprodukter, forskellige udviklingssprog osv.

De vigtigste karakteristika ved AMQP er meddelelsesorienteret, købaseret, routing (inklusive peer-to-peer og publicish/subscribe), pålidelighed og sikkerhed. AMQP håndhæver adfærden hos beskedudbydere og klienter, hvilket muliggør ægte interoperabilitet mellem forskellige leverandører.

Detaljeret forklaring af AMQP-protokollen
https://www.itsvse.com/thread-10347-1-1.html

Routing-beskeder

I AMQP-arkitekturen består enhver succesfuld meddelelsesrouting af tre dele:

  • Udveksling: Hvor producenter offentliggør beskeder
  • Køer: Hvor forbrugere modtager beskeder
  • Bindings: Hvordan beskeder dirigeres fra switchen til en specifik kø


Udvekslinger og bindinger

Så hvordan når beskeden køen? Når du ønsker at levere en besked til en forbruger, skal du først sende den til udveksleren. Derefter, baseret på visse regler eller routingnøgler, vil RabbitMQ beslutte, hvilken kø den skal levere beskeder til.

Regler – eller routing-taster – gør det muligt at binde en kø til børsen. RabbitMQ vil forsøge at matche routing-nøglen i beskeden med den nøgle, der bruges i bindingen. Beskeden leveres derefter til køen baseret på en af fire udvekslingstyper: fanout, topic, direct, header



Fanout-udveksling

Denne type udveksling sender alle de beskeder, den modtager, til alle køer, der er bundet til den. Alle routingnøgler, der følger med den offentliggjorte besked, vil blive ignoreret.

Emneudveksling

I denne type udveksling sendes beskeder til en kø baseret på routingnøglen. Det betyder, at beskeder sendt til emneudvekslingen skal have en specifik routingnøgle, som skal være en liste af ord, adskilt af punkter (f.eks. 'acs.deviceoperations.'). Tekstgrænsen er 255 bytes.

Bindingsnøglen skal være i samme format som routingtasten. Derfor vil beskeder sendt med en specifik routingnøgle blive leveret til hver kø, der er bundet med en tilsvarende bindingsnøgle.

Bindingsnøgler tillader følgende udtryksregler:

*(stjerne) kan kun erstatte ét ord
# (hash) kan erstatte nul eller flere ord
Når en kø bindes med en "#" (hash) bindingsnøgle, vil den modtage alle beskeder uanset routing-nøglen, ligesom i en Fanout fan-out exchange.

Direkte udveksling

Når en kø erklæres, vil denBind automatisk til en switch, der bruger køens navn som routing-nøgle。 Hvis routingnøglen matcher, leveres beskeden til den relevante kø.

Header-udveksling

Header-switches ligner til dels emne-switches, men i modsætning til topic-switches er routingen baseret på rute-nøgler, og routingværdierne for header-switches er baseret på header-dataene i beskeden.
Emneskiftets routingnøgle er kun en streng, mens header-switchen kan være et heltal og en hash.

(Slut)





Tidligere:Detaljeret forklaring af AMQP-protokollen
Næste:[Drej]. NET-ydelsesoptimeringer - gennemgår hurtigt listesamlinger
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