Azure Service Bus'ta iletileri toplu silme (Önizleme)
Azure Service Bus, ayrılmış uygulamalar ve hizmetler arasında ileti gönderip almanızı sağlayan, tam olarak yönetilen bir kurumsal tümleştirme ileti aracısıdır. Ancak, bazen bir kuyruktan veya abonelikten iletileri işlemeden silmek isteyebilirsiniz; örneğin, süresi dolmuş, bozulmuş veya ilgisiz. Bu makalede, Azure Service Bus'ta iletileri toplu olarak silme işlemi gösterilmektedir.
İletileri Toplu silme senaryoları
Azure Service Bus'ta iletileri toplu silme özelliğini kullanmak isteyebileceğiniz çeşitli senaryolar vardır. Bunlardan bazıları şunlardır:
- Süresi Dolan İletiler: Yaşam süresi (TTL) değerini aşan ve teslim edilemeyen ileti kuyruğunda olan iletileri silin.
- Başarısız Doğrulama veya İşleme: Doğrulama veya işleme mantığı başarısız olan ve teslim edilemeyen ileti kuyruğunda olan iletileri kaldırın.
- Ilgisiz İletiler: Artık etkin kuyruktan uygulama mantığınızla ilgili olmayan iletileri silin.
- Yinelenenleri veya Yanlış İçeriği İşleme: Yinelenen veya yanlış iletileri etkin kuyruktan kaldırın.
İletileri toplu silme özelliğini kullanarak, bir kuyruktan veya abonelikten birden çok iletiyi tek tek silmek yerine tek bir işlemle silebilirsiniz. Silme işlemi hizmet tarafında yapıldığından, iletileri silmeden önce almanız gerekmez. Bu yöntem hem hizmet isteği sayısını hem de ağ gecikme süresini en aza indirir.
Önemli
Şu anda Toplu silme, bölümlenmiş varlıklarda desteklenmemektedir. Toplu silme çağrısında en fazla 4000 ileti silebilirsiniz. Toplu silme işlemi en iyi çaba temelinde yapılır ve tek API çağrısında tam messageCount'un silineceğini garanti etmez.
Service Bus'ta iletileri toplu silme
Service Bus Alıcısı nesnesinde DeleteMessagesAsync'i çağırarak iletileri silebilirsiniz. Sunucu tarafında iki DeleteMessagesAsync
parametre gerekir: messageCount
ve beforeEnqueueTime
.
messageCount
: Silinecek ileti sayısı. Hizmet bu sınırdan daha az iletiyi silebilir.beforeEnqueueTime
: Silme işleminin kesme süresini temsil eden isteğe bağlı bir DateTimeOffset(UTC) değeridir. Yalnızca bu süreden önce sıraya alınan iletiler silinir.
Ayrıca, tüm iletileri varlıktan temizlemek için PurgeMessagesAsync'i çağırabilirsiniz.
Azure portalı kullanarak
Azure portalında bulunan Service Bus gezginini kullanarak iletileri varlıktan da temizleyebilirsiniz. İletileri temizlemek için aşağıdaki adımları izleyebilirsiniz:
- İletileri silmek istediğiniz varlığın 'Service Bus gezgini' dikey penceresine gidin.
- Service Bus gezgini açılan listesinde 'Alma modu'nu seçin.
- Anlık görüntüde gösterildiği gibi iletileri temizle seçeneğine tıklayın.
- Başka bir iletişim kutusu görüntülenir ve temizleme iletileri işlemini yürütmek için 'purge' yazın.
Bu işlemleri gerçekleştirmek için Azure SDK'ları kullanılırken beforeEnqueueTime parametresi varsayılan olarak geçerli UTC saati (DateTime.UtcNow()) olarak belirlenir. İstenmeyen iletinin silinmesini önlemek için doğru değerleri sağladığınızı güvence altına almak önemlidir.
Not
Temizleme işlemi, birden çok API çağrısı içerdiğinden CPU kullanımının artmasına neden olabilir. Temizleme sırasında, kilitli iletiler kaldırılmaya uygun değildir ve varlıkta kalır.
Sonraki adımlar
Azure Service Bus özelliklerini keşfetmek için istediğiniz dilde örnekleri deneyin:
- .NET için Azure Service Bus istemci kitaplığı örnekleri (en son)
- Java için Azure Service Bus istemci kitaplığı örnekleri (en son)
- Python için Azure Service Bus istemci kitaplığı örnekleri
- JavaScript için Azure Service Bus istemci kitaplığı örnekleri
- TypeScript için Azure Service Bus istemci kitaplığı örnekleri