Meddelandekvittens
En meddelandekvittens talar om för brokern att en leverans har tagits emot eller behandlats enligt den överenskomna regeln.
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
Relaterade begrepp
- MeddelandeköEn meddelandekö buffrar meddelanden tills en konsument hämtar dem för bearbetning.
- Transaktionell inboxEn transaktionell inbox använder beständiga meddelandeposter för att skydda lokal behandling mot dubbla leveranser.
- Jitter vid återförsökRetry-jitter varierar väntetider slumpmässigt för att sprida återförsök och minska samtidiga anrop från många klienter.
- TestkundmiljöEtt logiskt avgränsat kundområde i en multitenant-applikation, inrättat för kontroller.
- Omsändning av webhookOmsändning av webhook skickar ett meddelande igen. Avsiktlig återhämtning och replayattacker kräver olika kontroller.
- IdempotensnyckelEn idempotensnyckel identifierar upprepningar av samma avsedda begäran. Område, lagringstid och API-regler avgör dess verkan.
Artiklar om ämnet








API:er & integration med ASES
ERP, CRM och webbutik smidigt sammankopplade

