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