Azure Service Bus'ta azaltma işlemleri

Buluta özel çözümler, iş yükünüzle ölçeklendirilebilecek sınırsız kaynaklardan oluşan bir fikir verir. Bu, bulutta şirket içi sistemlerden daha doğru olsa da, bulutta hala mevcut olan sınırlamalar vardır. Bu sınırlamalar, bu makalede açıklandığı gibi hem standart hem de premium katmanlarda istemci uygulama isteklerinin azaltmasına neden olabilir.

Standart katmanda azaltma

Service Bus'ın standart katmanı, kullandıkça öde fiyatlandırma modeliyle çok kiracılı bir kurulum olarak çalışır. Burada, aynı kümedeki birden çok ad alanı ayrılan kaynakları paylaşır. Standart katman geliştirici ortamları, Soru-Cevap ortamları ve düşük performanslı üretim sistemleri için önerilen seçenektir.

Geçmişte Service Bus'ın kaynak kullanımına bağlı olarak kaba azaltma sınırları vardı. Ancak, azaltma mantığını iyileştirme ve bu kaynakları paylaşan tüm ad alanlarına öngörülebilir azaltma davranışı sağlama fırsatı vardır.

Aynı kaynakları kullanan tüm Service Bus standart ad alanları genelinde kaynakların adil bir şekilde kullanılmasını ve dağıtılmasını sağlamak amacıyla, Service Bus standardı şu anda kredi tabanlı azaltma mantığını kullanır.

Not

Azaltmanın Azure Service Bus'ta veya herhangi bir bulutta yerel hizmette yeni olmadığını unutmayın.

Kredi tabanlı azaltma, çeşitli ad alanlarının kaynakları çok kiracılı standart katman ortamında paylaşma şeklini iyileştirerek kaynakları paylaşan tüm ad alanlarının adil kullanımına olanak sağlamaktır.

Kredi tabanlı azaltma nedir?

Kredi tabanlı azaltma, belirli bir zaman aralığında belirli bir ad alanında gerçekleştirilebilecek işlem sayısını sınırlar. Kredi tabanlı azaltmaya yönelik iş akışı aşağıdadır.

  • Service Bus, her zaman aralığının başında her ad alanına bazı krediler sağlar.
  • Gönderen veya alıcı istemci uygulamaları tarafından gerçekleştirilen tüm işlemler bu kredilere göre sayılır (ve kullanılabilir kredilerden çıkarılır).
  • Krediler tükenirse, sonraki işlemler bir sonraki dönemin başlangıcına kadar kısıtlanır.
  • Krediler bir sonraki dönemin başında yenilenir.

Kredi limitleri nelerdir?

Kredi sınırları şu anda her saniye (ad alanı başına) 1000 kredi olarak ayarlanmıştır. Tüm işlemler eşit oluşturulmaz. İşlemlerin her birinin kredi maliyetleri aşağıdadır.

İşlem Kredi maliyeti
Veri işlemleri (Send, SendAsync, Receive, ReceiveAsync, Peek) İleti başına 1 kredi
Yönetim işlemleri (CreateReadUpdateDeletekuyruklar, konular, abonelikler, filtreler üzerinde , , ) 10 kredi

Not

Bir konuya gönderirken, her ileti abonelikte kullanılabilir hale getirilmeden önce filtrelere göre değerlendirilir. Her filtre değerlendirmesi, kredi limiti (filtre değerlendirmesi başına 1 kredi) için de sayılır.

Nasıl yaparım? kısıtlandığımı biliyor musun?

İstemci uygulama istekleri kısıtlandığında, istemci uygulama aşağıdaki sunucu yanıtını alır.

The request was terminated because the entity is being throttled. Error code: 50009. Please wait 2 seconds and try again.

Kısıtlanmaktan nasıl kaçınabilirim?

Paylaşılan kaynaklarla, bu kaynakları paylaşan çeşitli Service Bus ad alanları arasında adil kullanımı zorunlu kılmak önemlidir. Azaltma, tek bir iş yükündeki ani artışların aynı kaynaklardaki diğer iş yüklerinin kısıtlanmasını sağlamamasını sağlar. Makalenin ilerleyen bölümlerinde belirtildiği gibi, istemci yazılım geliştirme setleri (SDK'lar) ve diğer Azure PaaS tekliflerinde yerleşik varsayılan yeniden deneme ilkesi bulunduğundan kısıtlama riski yoktur. Kısıtlanan istekler üstel geri alma ile yeniden deneniyor ve krediler yenilendiğinde geçiliyor.

Anlaşılır bir şekilde, bazı uygulamalar kısıtlanma konusunda hassas olabilir. Bu durumda, geçerli Service Bus standart ad alanınızı premium'a geçirmenizi öneririz. Geçişte, Service Bus ad alanınıza ayrılmış kaynaklar ayırabilir ve iş yükünüzde ani bir artış olduğunda kaynakların ölçeğini uygun şekilde artırabilir ve azaltma olasılığını azaltabilirsiniz. Ayrıca, iş yükünüz normal düzeylere indiğinde, ad alanınıza ayrılan kaynakların ölçeğini azaltabilirsiniz.

Premium katmanda azaltma

Service Bus premium katmanı, müşteri tarafından her ad alanı kurulumuna mesajlaşma birimleri açısından ayrılmış kaynaklar ayırır. Bu ayrılmış kaynaklar öngörülebilir aktarım hızı ve gecikme süresi sağlar ve yüksek aktarım hızı veya hassas üretim sınıfı sistemleri için önerilir. Ayrıca premium katman, müşterilerin iş yükünde ani artışlarla karşılaştığında aktarım hızı kapasitelerinin ölçeğini artırmalarına da olanak tanır. Daha fazla bilgi için bkz . Azure Service Bus ad alanının mesajlaşma birimlerini otomatik olarak güncelleştirme.

Service Bus Premium'da azaltma nasıl çalışır?

Premium katman için özel kaynak ayırma ile azaltma yalnızca ad alanına ayrılan kaynakların sınırlamaları tarafından yönlendirilir. İstek sayısı geçerli kaynakların hizmet verebilir sayısından fazlaysa, istekler kısıtlanmış olur.

Nasıl yaparım? kısıtlandığımı biliyor musun?

Service Bus premium katmanında azaltmayı tanımlamanın çeşitli yolları vardır.

  • Kısıtlanmış İstekler , kaç isteğin kısıtlandığını belirlemek için Azure İzleyici İsteği ölçümlerinde gösterilir.
  • Yüksek CPU Kullanımı , geçerli kaynak ayırmanın yüksek olduğunu ve geçerli iş yükünün azalmaması durumunda isteklerin kısıtlanabilir olduğunu gösterir.
  • Yüksek Bellek Kullanımı , geçerli kaynak ayırmanın yüksek olduğunu gösterir ve geçerli iş yükü azalmazsa istekler kısıtlanabilir.

Kısıtlanmaktan nasıl kaçınabilirim?

Service Bus premium ad alanı zaten ayrılmış kaynaklara sahip olduğundan, iş yükündeki ani artış (veya tahmin) durumunda ad alanınıza ayrılan mesajlaşma birimi sayısını artırarak azaltma olasılığını azaltabilirsiniz. Daha fazla bilgi için bkz . Azure Service Bus ad alanının mesajlaşma birimlerini otomatik olarak güncelleştirme.

SSS

Azaltma uygulamamı nasıl etkiler?

bir istek kısıtlandığında, kaynakların izin sağladığından daha fazla istekle karşılaştığından hizmetin meşgul olduğu anlamına gelir. Aynı işlem birkaç dakika sonra yeniden denenirse, hizmet geçerli iş yükü üzerinde çalıştıktan sonra istek yerine getirilir.

Azaltma, herhangi bir bulut yerel hizmetinin beklenen davranışı olduğundan, yeniden deneme mantığı Service Bus SDK'sının kendisinde yerleşik olarak bulunur. Her seferinde aynı isteğin kısıtlanmadığından emin olmak için varsayılan ayar üstel geri alma ile otomatik yeniden deneme olarak ayarlanır. Varsayılan yeniden deneme mantığı her işlem için geçerlidir.

Not

Diğer üçüncü taraf hizmetleri çağıran ileti işleme kodu, bu diğer hizmetler tarafından da kısıtlanabilir. Bu senaryoları işleme hakkında daha fazla bilgi için Azaltma Deseni belgelerine bakın.

Azaltma veri kaybına neden olur mu?

Azure Service Bus, kalıcılık için iyileştirilmiştir. Hizmet isteğin başarısını kabul etmeden önce Service Bus'a gönderilen tüm verilerin depolamaya işlenmesini sağlıyoruz.

İstek Service Bus tarafından başarıyla onaylandıktan sonra, Service Bus'ın isteği başarıyla işlediği anlamına gelir. Service Bus bir hata döndürürse, Service Bus'ın isteği işleyemediği ve istemci uygulamasının isteği yeniden denemesi gerektiği anlamına gelir.

Ancak bir istek kısıtlandığında hizmet, kaynak sınırlamaları nedeniyle şu anda isteği kabul edip işleyemediği anlamına geliyor. Service Bus yalnızca isteğe bakmadığından herhangi bir veri kaybı anlamına gelmez. Bu durumda, Service Bus SDK'sının varsayılan yeniden deneme ilkesine güvenmek, isteğin sonunda işlenmesini sağlar.

Service Bus mesajlaşmasını kullanma hakkında daha fazla bilgi ve örnek için aşağıdaki gelişmiş konulara bakın: