Azure Cosmos DB for MongoDB işlemlerinde hız sınırlama hatalarını önleyin

ŞUNLAR IÇIN GEÇERLIDIR: MongoDB

MongoDB için Azure Cosmos DB işlemleri, bir koleksiyonun aktarım hızı sınırını (RU) aşarsa mongo istek ölçümlerinde 16500 hataya neden olarak hız sınırlaması ile karşılaşabilir.

İşlem yeniden denemelerini otomatikleştirmek için Sunucu Tarafı Yeniden Deneme'yi (SSR) etkinleştirin. SSR, kısa gecikmelerle istekleri hesabınızdaki tüm koleksiyonlarda yeniden denenir. 60 saniyelik bir zaman aşımına ulaşılırsa, istemci bir ExceededTimeLimit özel durumu (50) alır.

Azure portal’ı kullanma

  1. Azure Portal’ında oturum açın.

  2. MongoDB için Azure Cosmos DB hesabınıza gidin.

  3. Ayarlar bölümünün altındaki Özellikler bölmesine gidin.

  4. Sunucu Tarafı Yeniden Dene'yi seçin.

  5. Hesabınızdaki tüm koleksiyonlarda bu özelliği etkinleştirmek için Etkinleştir'e tıklayın.

MongoDB için Azure Cosmos DB'ye yönelik sunucu tarafı yeniden deneme özelliğinin ekran görüntüsü

Azure CLI'yi kullanma

  1. Hesabınız için SSR'nin zaten etkin olup olmadığını denetleyin:

    az cosmosdb show --name accountname --resource-group resourcegroupname
    
  2. Veritabanı hesabınızdaki tüm koleksiyonlar için SSR'yi etkinleştirin . Bu değişikliğin geçerli olması 15 dakika kadar sürebilir.

    az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo DisableRateLimitingResponses
    
  3. Aşağıdaki komut, yetenek listesinden kaldırarak DisableRateLimitingResponses veritabanı hesabınızdaki tüm koleksiyonlar için sunucu tarafı yeniden denemesini devre dışı bırakır. Bu değişikliğin geçerli olması 15 dakika kadar sürebilir.

    az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo
    

Sık sorulan sorular

Sunucu tarafı yeniden denemesinin etkilerini nasıl izleyebilirim?

Azure Cosmos DB Ölçümleri bölmesinde sunucu tarafında yeniden denenen mongo istekleri ölçümüyle hız sınırlama hatalarını (16500) görüntüleyebilirsiniz. SSR etkinleştirildiğinde bu hataların istemciye gitmediğini, çünkü bunların sunucu tarafında işlendiğini ve yeniden denendiğini unutmayın.

Azure Cosmos DB kaynak günlüklerinizde tahminiDelayFromRateLimitingInMilliseconds içeren günlük girdilerini arayabilirsiniz.

Sunucu tarafı yeniden denemesi tutarlılık düzeyimi etkileyecek mi?

sunucu tarafı yeniden denemesi isteğin tutarlılığını etkilemez. İstekler hız sınırlıysa sunucu tarafında yeniden denenir.

Sunucu tarafı yeniden denemesi istemcimin alabileceği herhangi bir hata türünü etkiler mi?

Hayır, sunucu tarafı yeniden denemesi yalnızca sunucu tarafında yeniden denenerek hız sınırlama hatalarını etkiler. Bu özellik, istemci uygulamasında hız sınırlama hatalarını işlemeniz gerekmesini önler. Diğer tüm hatalar istemciye gider.

Sonraki adımlar

Yaygın hataları giderme hakkında daha fazla bilgi edinmek için şu makaleye bakın:

Azure Cosmos DB'ye geçiş için kapasite planlaması yapmaya mı çalışıyorsunuz? Kapasite planlaması için mevcut veritabanı kümeniz hakkındaki bilgileri kullanabilirsiniz.

  • Aktarım hızını bölümler arasında yeniden dağıtmayı öğrenmek için bkz . Bölümler arasında aktarım hızını yeniden dağıtmayı öğrenme
  • Tek bildiğiniz mevcut veritabanı kümenizdeki sanal çekirdek ve sunucu sayısıysa, sanal çekirdek veya vCPU kullanarak istek birimlerini tahmin etme hakkında bilgi edinin
  • Geçerli veritabanı iş yükünüz için tipik istek oranlarını biliyorsanız Azure Cosmos DB kapasite planlayıcısı kullanarak istek birimlerini tahmin etme hakkında bilgi edinin