Dávkové odstraňování zpráv ve službě Azure Service Bus (Preview)
Azure Service Bus je plně spravovaný zprostředkovatel zpráv podnikové integrace, který umožňuje odesílat a přijímat zprávy mezi oddělenými aplikacemi a službami. Někdy ale můžete chtít odstranit zprávy z fronty nebo odběru bez jejich zpracování, například pokud jejich platnost vypršela, poškozená nebo irelevantní. V tomto článku se dozvíte, jak odstranit zprávy v dávkách ve službě Azure Service Bus.
Scénáře pro dávkové odstraňování zpráv
Ve službě Azure Service Bus můžete chtít použít funkci dávkového odstranění zpráv. Může jít o tyto příčiny:
- Zprávy s vypršenou platností: Odstraňte zprávy, které překračují hodnotu TTL (Time to Live) a jsou ve frontě nedoručených zpráv.
- Neúspěšné ověření nebo zpracování: Odeberte zprávy, které selhaly ověření nebo zpracování logiky a jsou ve frontě nedoručených zpráv.
- Irelevantní zprávy: Odstraňte zprávy, které už nejsou relevantní pro logiku vaší aplikace z aktivní fronty.
- Zpracování duplicit nebo nesprávného obsahu: Odeberte duplicitní nebo nesprávné zprávy z aktivní fronty.
Pomocí funkce dávkového odstranění zpráv můžete odstranit více zpráv z fronty nebo odběru v jedné operaci, místo abyste je odstranili 1 po druhém. Vzhledem k tomu, že odstranění probíhá na straně služby, nemusíte před odstraněním zpráv přijímat zprávy. Tato metoda minimalizuje počet požadavků služby i latenci sítě.
Důležité
Odstranění služby Batch se v současné době nepodporuje u dělených entit. V dávkovém volání odstranění můžete odstranit maximálně 4 000 zpráv. Dávkové odstranění se provádí na základě nejlepšího úsilí a nezaručuje, že se přesná hodnota messageCount odstraní v rámci jednoho volání rozhraní API.
Postup dávkového odstranění zpráv ve službě Service Bus
Zprávy můžete odstranit voláním DeleteMessagesAsync u objektu příjemce služby Service Bus. Na straně serveru vyžaduje DeleteMessagesAsync
dva parametry: messageCount
a beforeEnqueueTime
.
messageCount
: Požadovaný počet zpráv, které chcete odstranit. Služba může odstranit méně zpráv, než je tento limit.beforeEnqueueTime
: Volitelný DateTimeOffset v UTC představující čas pro odstranění. Odstraní se jenom zprávy, které byly před tímto časem ve frontě.
Kromě toho můžete volat PurgeMessagesAsync k vyprázdnění všech zpráv z entity.
Pomocí webu Azure Portal
Zprávy z entity můžete také vyprázdnit pomocí Průzkumníka služby Service Bus, který je k dispozici na webu Azure Portal. Zprávy můžete vyprázdnit pomocí následujících kroků:
- V entitě, ze které chcete odstranit zprávy, přejděte do okna Service Bus Explorer.
- V rozevíracím seznamu Service Bus Exploreru zvolte Režim příjmu.
- Klikněte na možnost vyprázdnění zpráv, jak je znázorněno na snímku.
- Zobrazí se další dialogové okno, zadejte "vyprázdnit", aby se spustila operace vyprázdnění zpráv.
Při použití sad Azure SDK k provedení těchto operací se parametr beforeEnqueueTime nastaví na aktuální čas UTC (DateTime.UtcNow()). Je důležité zajistit, abyste zadali správné hodnoty, abyste zabránili nechtěnému odstranění zprávy.
Poznámka:
Operace vyprázdnění může vést ke zvýšení využití procesoru, protože zahrnuje více volání rozhraní API. Během vyprázdnění nejsou uzamčené zprávy způsobilé k odebrání a zůstanou v entitě.
Další kroky
Pokud chcete prozkoumat funkce služby Azure Service Bus, vyzkoušejte ukázky v jazyce podle vašeho výběru:
- Ukázky klientské knihovny služby Azure Service Bus pro .NET (nejnovější)
- Ukázky klientské knihovny služby Azure Service Bus pro Javu (nejnovější)
- Ukázky klientské knihovny služby Azure Service Bus pro Python
- Ukázky klientské knihovny služby Azure Service Bus pro JavaScript
- Ukázky klientské knihovny služby Azure Service Bus pro TypeScript
Ukázky pro starší klientské knihovny .NET a Java:
- Ukázky klientské knihovny služby Azure Service Bus pro .NET (starší verze) – viz ukázka předběžného načtení .
- Ukázky klientské knihovny služby Azure Service Bus pro Javu (starší verze) – Viz ukázka předběžného načtení .
30. září 2026 vyřadíme knihovny sady SDK služby Azure Service Bus pro WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus a com.microsoft.azure.servicebus, které nevyhovují pokynům sady Azure SDK. Také ukončíme podporu protokolu SBMP, takže tento protokol už nebudete moct používat po 30. září 2026. Před tímto datem migrujte na nejnovější knihovny sady Azure SDK, které nabízejí důležité aktualizace zabezpečení a vylepšené funkce.
I když starší knihovny je možné používat i po 30. září 2026, nebudou už od Microsoftu dostávat oficiální podporu a aktualizace. Další informace najdete v oznámení o vyřazení podpory.