避免 Azure Cosmos DB for MongoDB 作業的速率限制錯誤
適用於: MongoDB
適用於 MongoDB 的 Azure Cosmos DB 作業可能會遇到速率限制,如果 Mongo 要求計量超過集合的輸送量限制,則會產生 16500 個錯誤。
啟用伺服器端重試 (SSR) 以自動化作業重試。 SSR 會以短暫的延遲,重試您帳戶中所有集合的要求。 如果達到 60 秒的逾時,用戶端會收到 ExceededTimeLimit 例外狀況 (50)。
使用 Azure 入口網站
登入 Azure 入口網站。
導覽至 Azure Cosmos DB for MongoDB 帳戶。
移至 [設定] 區段底下的 [功能] 窗格。
選取 [伺服器端重試]。
按一下 [啟用],為帳戶中的所有集合啟用這項功能。
使用 Azure CLI
檢查帳戶是否已啟用 SSR:
az cosmosdb show --name accountname --resource-group resourcegroupname
為資料庫帳戶中的所有集合啟用 SSR。 可能需要 15 分鐘的時間,這項變更才會生效。
az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo DisableRateLimitingResponses
下列命令會從 [功能] 清單中移除
DisableRateLimitingResponses
,為資料庫帳戶中的所有集合停用伺服器端重試。 可能需要 15 分鐘的時間,這項變更才會生效。az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo
常見問題集
如何監視伺服器端重試的影響?
您可以在 Azure Cosmos DB 資源記錄中搜尋包含 estimatedDelayFromRateLimitingInMilliseconds 的記錄項目。
伺服器端重試會對一致性層級造成影響嗎?
伺服器端重試不會影響要求的一致性。 如果要求速率有限,則會重試伺服器端。
伺服器端重試是否會對用戶端可能收到的任何類型錯誤造成影響?
否,伺服器端重試只會藉由重試伺服器端來影響速率限制錯誤。 這項功能可讓您不需要處理用戶端應用程式中的速率限制錯誤。 所有其他錯誤都會歸屬至用戶端。
下一步
若要深入了解如何針對常見的錯誤進行疑難排解,請參閱這篇文章:
正在嘗試為遷移至 Azure Cosmos DB 進行容量規劃嗎? 您可以使用現有資料庫叢集的相關資訊進行容量規劃。
- 如需瞭解如何在分割區之間轉散發輸送量,請參閱 瞭解如何在分割區之間轉散發輸送量
- 如果您知道現有資料庫叢集中的虛擬核心和伺服器數目,請參閱使用虛擬核心或 vCPU 來估計要求單位
- 如果您知道目前資料庫工作負載的一般要求率,請參閱使用 Azure Cosmos DB 容量規劃工具來估計要求單位