Naar de inhoud

Berichtbevestiging

Een berichtbevestiging meldt aan de broker dat een aflevering volgens de afgesproken regel is ontvangen of verwerkt.

Ook bekend alsMessage acknowledgement
Koppelingen & integratie

Een berichtbevestiging vertelt een message broker wanneer die een aflevering als afgehandeld mag beschouwen. De richting van de bevestiging en het moment waarop de toepassing haar verstuurt, zijn bepalend.

In RabbitMQ bevestigt een consumer zijn verwerking aan de broker met een handmatige positieve bevestiging zoals basic.ack. Een publisher confirm bevestigt daarentegen aan de afzender de acceptatie aan de kant van de broker. Dat bewijst nog niet dat de ontvangende toepassing haar taak heeft afgerond.

Tussen opslaan en bevestigen

In een fictieve stroom verwerkt een dienst bericht E-42, slaat de vereiste databasewijziging duurzaam op en bevestigt daarna. Bevestigt de dienst eerst en crasht hij vóór het opslaan, dan kan de broker de aflevering al als afgehandeld beschouwen terwijl de wijziging ontbreekt.

Ook de omgekeerde situatie telt: als de wijziging is opgeslagen maar de bevestiging verloren gaat, kan het bericht opnieuw worden afgeleverd. Bij handmatige bevestigingen zet RabbitMQ onbevestigde berichten terug in de wachtrij na het sluiten van een verbinding of kanaal. De dienst moet herhaling daarom afhandelen zonder het bedrijfsresultaat twee keer te veroorzaken.

Automatische bevestiging in RabbitMQ wacht niet totdat het werk van de toepassing klaar is. De gekozen modus moet passen bij de gewenste bescherming tegen verloren werk. Een consumerbevestiging bewijst ook niet dat alle volgende diensten of een externe melding succesvol waren.

Bronnen

Artikelen over dit onderwerp

Koppelingen & integratie met ASES

ERP, CRM en webshop netjes gekoppeld