Delen via


Berichten in Batch verwijderen in Azure Service Bus (preview)

Azure Service Bus is een volledig beheerde berichtenbroker voor bedrijfsintegratie waarmee u berichten kunt verzenden en ontvangen tussen losgekoppelde toepassingen en services. Soms wilt u echter mogelijk berichten uit een wachtrij of abonnement verwijderen zonder ze te verwerken, bijvoorbeeld als ze verlopen, beschadigd of irrelevant zijn. In dit artikel leest u hoe u berichten in batches in Azure Service Bus verwijdert.

Scenario's voor batchverwijdering van berichten

Er zijn verschillende scenario's waarin u de functie batchgewijs verwijderen van berichten in Azure Service Bus wilt gebruiken. Sommige hiervan zijn:

  • Verlopen berichten: verwijder berichten die langer zijn dan de TTL-waarde (Time To Live) en bevinden zich in de wachtrij met dode letters.
  • Mislukte validatie of verwerking: verwijder berichten die de validatie- of verwerkingslogica hebben mislukt en bevinden zich in de wachtrij met dode letters.
  • Irrelevante berichten: verwijder berichten die niet langer relevant zijn voor uw toepassingslogica uit de actieve wachtrij.
  • Dubbele waarden of onjuiste inhoud verwerken: dubbele of onjuiste berichten uit de actieve wachtrij verwijderen.

Met behulp van de functie batchverplaatsingsberichten kunt u in één bewerking meerdere berichten uit een wachtrij of abonnement verwijderen in plaats van ze één voor één te verwijderen. Omdat het verwijderen aan de servicezijde wordt uitgevoerd, hoeft u de berichten niet te ontvangen voordat u ze verwijdert. Deze methode minimaliseert zowel het aantal serviceaanvragen als de netwerklatentie.

Belangrijk

Op dit moment wordt Batch-verwijdering niet ondersteund met gepartitioneerde entiteiten. U kunt maximaal 4000 berichten in een batch-verwijderoproep verwijderen. Batchverwijdering wordt op basis van best effort uitgevoerd en garandeert niet dat de exacte messageCount wordt verwijderd in één API-aanroep.

Berichten batchgewijs verwijderen in Service Bus

U kunt berichten verwijderen door DeleteMessagesAsync aan te roepen op service busontvangerobject. Aan de serverzijde DeleteMessagesAsync zijn twee parameters vereist: messageCount en beforeEnqueueTime.

  • messageCount: Het gewenste aantal berichten dat moet worden verwijderd. De service kan minder berichten verwijderen dan deze limiet.
  • beforeEnqueueTime: Een optionele DateTimeOffset, in UTC, die de cutoff-tijd vertegenwoordigt voor verwijdering. Alleen berichten die vóór deze tijd zijn verzonden, worden verwijderd.

Daarnaast kunt u PurgeMessagesAsync aanroepen om alle berichten van de entiteit op te schoonen.

Azure-portal gebruiken

U kunt ook berichten van de entiteit opschonen met behulp van Service Bus Explorer die beschikbaar is in Azure Portal. U kunt de volgende stappen volgen om berichten te verwijderen:

  1. Navigeer naar de blade Service Bus Explorer op de entiteit waaruit u berichten wilt verwijderen.
  2. Kies 'Ontvangstmodus' in de vervolgkeuzelijst Service Bus Explorer.

Schermopname van de vervolgkeuzelijst met de ontvangstmodus geselecteerd.

  1. Klik op de optie berichten opschonen, zoals wordt weergegeven in de momentopname.

Schermopname van berichten leegmaken geselecteerd.

  1. Er wordt een ander dialoogvenster weergegeven, voert u 'leegmaken' in om de bewerking voor opschonen van berichten uit te voeren.

Schermopname van het invoeren van Opschonen om te bevestigen.

Wanneer u Azure SDK's gebruikt om deze bewerkingen uit te voeren, wordt de parameter beforeEnqueueTime standaard ingesteld op de huidige UTC-tijd (DateTime.UtcNow()). Het is belangrijk om ervoor te zorgen dat u de juiste waarden opgeeft om onbedoelde verwijdering van berichten te voorkomen.

Notitie

De opschoningsbewerking kan leiden tot een verhoogd CPU-gebruik, omdat het meerdere API-aanroepen omvat. Tijdens het opschonen komen vergrendelde berichten niet in aanmerking voor verwijdering en blijven ze in de entiteit staan.

Volgende stappen

Als u Azure Service Bus-functies wilt verkennen, kunt u de voorbeelden in de taal van uw keuze uitproberen: