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:
- Navigeer naar de blade Service Bus Explorer op de entiteit waaruit u berichten wilt verwijderen.
- Kies 'Ontvangstmodus' in de vervolgkeuzelijst Service Bus Explorer.
- Klik op de optie berichten opschonen, zoals wordt weergegeven in de momentopname.
- Er wordt een ander dialoogvenster weergegeven, voert u 'leegmaken' in om de bewerking voor opschonen van berichten uit te voeren.
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:
- Voorbeelden van Azure Service Bus-clientbibliotheek voor .NET (nieuwste)
- Voorbeelden van Azure Service Bus-clientbibliotheek voor Java (nieuwste versie)
- Voorbeelden van Azure Service Bus-clientbibliotheek voor Python
- Voorbeelden van Azure Service Bus-clientbibliotheek voor JavaScript
- Voorbeelden van Azure Service Bus-clientbibliotheek voor TypeScript