Gå til innholdet

Meldingskvittering

En meldingskvittering forteller meldingsmegleren at en levering er mottatt eller behandlet etter den avtalte regelen.

Også kjent somMessage acknowledgement
API-er og integrasjon

En meldingskvittering forteller en meldingsbroker når den kan regne en levering som avsluttet. Retningen på kvitteringen og tidspunktet applikasjonen sender den på, er avgjørende.

I RabbitMQ bekrefter en konsument behandlingen sin overfor brokeren med en manuell positiv kvittering som basic.ack. En publisher confirm bekrefter derimot overfor avsenderen at brokeren har akseptert meldingen. Det viser ikke at mottakerapplikasjonen har fullført oppgaven sin.

Mellom lagring og kvittering

I et fiktivt forløp behandler en tjeneste meldingen E-42, lagrer den nødvendige databaseendringen varig og kvitterer deretter. Kvitterer den først og krasjer før lagringen, kan brokeren allerede regne leveringen som avsluttet, selv om endringen mangler.

Det motsatte tilfellet er også viktig: Hvis endringen er lagret, men kvitteringen går tapt, kan meldingen bli levert på nytt. Med manuelle kvitteringer legger RabbitMQ ukvitterte meldinger tilbake i køen når forbindelsen eller kanalen lukkes. Tjenesten må derfor håndtere gjentakelsen uten å skape det samme forretningsresultatet to ganger.

Automatisk kvittering i RabbitMQ venter ikke på at applikasjonens arbeid er ferdig. Den valgte modusen må passe til ønsket beskyttelse mot tapt arbeid. En konsumentkvittering beviser heller ikke at alle etterfølgende tjenester eller en ekstern varsling har lyktes.

Kilder

Artikler om temaet

API-er og integrasjon med ASES

ERP, CRM og nettbutikk ryddig koblet sammen