Hoppa till innehållet

Meddelandekvittens

En meddelandekvittens talar om för brokern att en leverans har tagits emot eller behandlats enligt den överenskomna regeln.

Även känt somMessage acknowledgement
API:er & integration

En meddelandekvittens talar om för en meddelandebroker när den får betrakta en leverans som avslutad. Kvittensens riktning och tidpunkten då applikationen skickar den är avgörande.

I RabbitMQ bekräftar en konsument sin behandling till brokern med en manuell positiv kvittens som basic.ack. En publisher confirm bekräftar däremot för avsändaren att brokern har accepterat meddelandet. Det visar inte att den mottagande applikationen har slutfört sin uppgift.

Mellan lagring och kvittens

I ett fiktivt flöde behandlar en tjänst meddelandet E-42, sparar den nödvändiga databasändringen varaktigt och kvitterar därefter. Om den kvitterar först och kraschar före lagringen kan brokern redan betrakta leveransen som avslutad, trots att ändringen saknas.

Det omvända fallet spelar också roll: Om ändringen är sparad men kvittensen går förlorad kan meddelandet levereras igen. Med manuella kvittenser lägger RabbitMQ tillbaka okvitterade meddelanden i kön när anslutningen eller kanalen stängs. Tjänsten måste därför hantera upprepningen utan att skapa samma verksamhetsresultat två gånger.

Automatisk kvittens i RabbitMQ väntar inte på att applikationens arbete är färdigt. Det valda läget måste passa det önskade skyddet mot förlorat arbete. En konsumentkvittens visar inte heller att alla efterföljande tjänster eller ett externt meddelande har lyckats.

Källor

Artiklar om ämnet

API:er & integration med ASES

ERP, CRM och webbutik smidigt sammankopplade