Share via


避免 Azure Cosmos DB for MongoDB 作業的速率限制錯誤

適用於: MongoDB

適用於 MongoDB 的 Azure Cosmos DB 作業可能會遇到速率限制,如果 Mongo 要求計量超過集合的輸送量限制,則會產生 16500 個錯誤。

啟用伺服器端重試 (SSR) 以自動化作業重試。 SSR 會以短暫的延遲,重試您帳戶中所有集合的要求。 如果達到 60 秒的逾時,用戶端會收到 ExceededTimeLimit 例外狀況 (50)。

使用 Azure 入口網站

  1. 登入 Azure 入口網站

  2. 導覽至 Azure Cosmos DB for MongoDB 帳戶。

  3. 移至 [設定] 區段底下的 [功能] 窗格。

  4. 選取 [伺服器端重試]

  5. 按一下 [啟用],為帳戶中的所有集合啟用這項功能。

適用於 MongoDB 的 Azure Cosmos DB 伺服器端重試功能的螢幕快照

使用 Azure CLI

  1. 檢查帳戶是否已啟用 SSR:

    az cosmosdb show --name accountname --resource-group resourcegroupname
    
  2. 為資料庫帳戶中的所有集合啟用 SSR。 可能需要 15 分鐘的時間,這項變更才會生效。

    az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo DisableRateLimitingResponses
    
  3. 下列命令會從 [功能] 清單中移除 DisableRateLimitingResponses,為資料庫帳戶中的所有集合停用伺服器端重試。 可能需要 15 分鐘的時間,這項變更才會生效。

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

常見問題集

如何監視伺服器端重試的影響?

您可以在 [Azure Cosmos DB 計量] 窗格中檢視 Mongo 要求計量的速率限制錯誤 (16500)。 請注意,當 SSR 已啟用時,因為處理和重試作業是在伺服器端進行,因此這些錯誤不會歸屬至用戶端。

您可以在 Azure Cosmos DB 資源記錄中搜尋包含 estimatedDelayFromRateLimitingInMilliseconds 的記錄項目。

伺服器端重試會對一致性層級造成影響嗎?

伺服器端重試不會影響要求的一致性。 如果要求速率有限,則會重試伺服器端。

伺服器端重試是否會對用戶端可能收到的任何類型錯誤造成影響?

否,伺服器端重試只會藉由重試伺服器端來影響速率限制錯誤。 這項功能可讓您不需要處理用戶端應用程式中的速率限制錯誤。 所有其他錯誤都會歸屬至用戶端。

下一步

若要深入了解如何針對常見的錯誤進行疑難排解,請參閱這篇文章:

正在嘗試為遷移至 Azure Cosmos DB 進行容量規劃嗎? 您可以使用現有資料庫叢集的相關資訊進行容量規劃。