Aracılığıyla paylaş


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.

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:

Eski .NET ve Java istemci kitaplıkları için örnekler:

30 Eylül 2026'da Azure SDK yönergelerine uymayan WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus ve com.microsoft.azure.servicebus Azure Service Bus SDK kitaplıklarını kullanımdan kaldıracağız. Ayrıca SBMP protokolünün desteğini de sonlandıracağız, bu nedenle 30 Eylül 2026'da bu protokolü artık kullanamayacaksınız. Bu tarihten önce kritik güvenlik güncelleştirmeleri ve geliştirilmiş özellikler sunan en son Azure SDK kitaplıklarına geçiş yapın.

Eski kitaplıklar 30 Eylül 2026'dan sonra da kullanılabilir olsa da artık Microsoft'tan resmi destek ve güncelleştirmeler almayacaktır. Daha fazla bilgi için bkz . destek kullanımdan kaldırma duyurusu.