Gå til indholdet

Meddelelseskvittering

En meddelelseskvittering fortæller brokeren, at en levering er modtaget eller behandlet efter den aftalte regel.

Også kendt somMessage acknowledgement
Snitflader & integration

En meddelelseskvittering fortæller en message broker, hvornår en levering må betragtes som afsluttet. Det afgørende er kvitteringens retning, og hvornår applikationen sender den.

I RabbitMQ bekræfter en forbruger sin behandling over for brokeren med en manuel positiv kvittering som basic.ack. En publisher confirm bekræfter derimod over for afsenderen, at brokeren har accepteret meddelelsen. Det viser ikke, at modtagerapplikationen har afsluttet sin opgave.

Mellem lagring og kvittering

I et fiktivt forløb behandler en tjeneste meddelelsen E-42, gemmer den nødvendige databaseændring varigt og kvitterer derefter. Kvitterer den først og går ned før lagringen, kan brokeren allerede betragte leveringen som afsluttet, selv om ændringen mangler.

Det omvendte tilfælde er også vigtigt: Er ændringen gemt, men kvitteringen går tabt, kan meddelelsen blive leveret igen. Med manuelle kvitteringer lægger RabbitMQ ukvitterede meddelelser tilbage i køen, når forbindelsen eller kanalen lukkes. Tjenesten skal derfor kunne håndtere gentagelsen uden at skabe det samme forretningsresultat to gange.

Automatisk kvittering i RabbitMQ venter ikke på, at applikationens arbejde er færdigt. Den valgte tilstand skal passe til den ønskede beskyttelse mod tabt arbejde. En forbrugerkvittering beviser heller ikke, at alle efterfølgende tjenester eller en ekstern besked er lykkedes.

Kilder

Artikler om emnet

Snitflader & integration med ASES

ERP, CRM og webshop forbundet ordentligt