Beskedkø

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 4. april 2020; checks kræver 2 redigeringer .

Meddelelseskø (eller postkasse ) - i datalogi  - en softwareteknisk komponent, der bruges til kommunikation mellem processer eller tråde i en enkelt proces . En bruges til at udveksle beskeder .

Beskedskø-paradigmet er beslægtet med publicerings-abonnement- mønsteret og er normalt en del af et større meddelelsesorienteret middleware- system . De fleste meddelelsessystemer understøtter både meddelelseskø- og publicerings-abonnement-modeller i deres API'er .

Oversigt

Beskedkøer giver en asynkron kommunikationsprotokol , hvilket betyder, at afsender og modtager af en meddelelse ikke skal interagere med meddelelseskøen på samme tid. Beskeder i kø gemmes, indtil modtageren modtager dem.

Beskedkøer har implicitte eller eksplicitte begrænsninger på mængden af ​​data, der kan sendes i en enkelt meddelelse, og antallet af meddelelser, der kan forblive i køen.

Mange implementeringer af beskedkøer fungerer internt, enten i operativsystemet eller i en applikation . Sådanne køer eksisterer kun til formålet med dette system.

Andre implementeringer gør det muligt at sende beskeder mellem forskellige computersystemer , hvilket potentielt forbinder flere applikationer og flere operativsystemer. Disse meddelelseskøsystemer giver typisk avanceret funktionalitet til modstandsdygtighed for at sikre, at meddelelser ikke går tabt, hvis systemet svigter.

Ansøgning

For at implementere en beskedkø installerer og konfigurerer systemadministratoren beskedkøsoftwaren (spooler eller mægler) og definerer en navngivet beskedkø. Eller de er registreret hos Message Queuing-tjenesten.

Applikationen registrerer derefter en programprocedure, der " lytter " efter beskeder placeret i køen .

Den anden og efterfølgende applikationer kan oprette forbindelse til køen og sende en besked til den .

Køstyringssoftwaren gemmer meddelelser, indtil den modtagende applikation opretter forbindelse og kalder derefter den registrerede programprocedure. Den modtagende applikation håndterer derefter beskeden korrekt.

Der er mange variationer af den nøjagtige semantik af meddelelsesoverførsel, herunder:

Alle disse faktorer kan i væsentlig grad påvirke semantikken af ​​transaktioner, pålideligheden og effektiviteten af ​​systemet.

Standarder og protokoller

Historisk set har beskedkøer brugt deres egne proprietære protokoller, der har begrænset muligheden for forskellige operativsystemer eller programmeringssprog til at fungere sammen i et heterogent sæt af miljøer.

Tre standarder er dukket op og bruges i open source- implementeringer af Message Queuing :

  1. Advanced Message Queuing Protocol (AMQP) er en meddelelseskøprotokol med mange funktioner
  2. STOMP (STOMP) - simpel tekstmeddelelsesprotokol
  3. MQTT (tidligere MQ Telemetry Transport) er en let meddelelseskø-protokol, især til indlejrede enheder.

Disse protokoller er på forskellige stadier af standardisering og implementering. De to første arbejder på det samme lag som HTTP , MQTT på TCP/IP-laget .

Synkron eller asynkron

Mange af de almindeligt kendte kommunikationsprotokoller bruges synkront. HTTP-protokollen , der bruges på World Wide Web og i webtjenester , tilbyder et illustrativt eksempel, hvor en bruger sender en anmodning til en webside og derefter venter på et svar.

Der er dog scenarier, hvor synkron adfærd ikke er passende. For eksempel kan AJAX (Asynchronous JavaScript og XML ) bruges til at sende tekst-, JSON- eller XML-meddelelser asynkront for at opdatere en del af en webside med mere relevant information.

Implementering i UNIX

UNIX har 2 almindelige implementeringer af køer. Den ene er en del af SYS V API, og den anden er en del af POSIX .

Se også

Noter

Links