Поделиться через


Предотвращение ошибок ограничения частоты при работе для Azure Cosmos DB и операциями MongoDB.

Область применения: MongoDB

Операции Azure Cosmos DB для MongoDB могут столкнуться с ограничением скорости, что приводит к ошибкам 16500 в метриках запросов mongo, если они превышают предел пропускной способности коллекции (ЕЗ).

Включите повторную попытку на стороне сервера (SSR) для автоматизации повторных попыток операции. SSR повторяет запросы во всех коллекциях в вашей учетной записи с короткими задержками. Если достигнуто 60-секундное время ожидания, клиент получает исключение ExceededTimeLimit (50).

Использование портала Azure

  1. Войдите на портал Azure.

  2. Перейдите к учетной записи Azure Cosmos DB для MongoDB.

  3. Перейдите в область Компоненты в разделе Параметры.

  4. Выберите Повтор на стороне сервера.

  5. Нажмите кнопку Включить, чтобы включить эту функцию для всех коллекций в вашей учетной записи.

Снимок экрана: функция повтора на стороне сервера для Azure Cosmos DB для MongoDB

Использование командной строки 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. Следующая команда отключит SSR для всех коллекций в учетной записи базы данных, удалив значение DisableRateLimitingResponses из списка функций. Применение изменений может занять до 15 минут.

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

Часто задаваемые вопросы

Как можно отслеживать работу SSR?

Вы можете просмотреть ошибки ограничения скорости (16500) с метрикой запросов mongo, которые извлекаются на стороне сервера в области метрик Azure Cosmos DB. Следует помнить, что эти ошибки не переходят на клиент, когда включена функция SSR, так как они обрабатываются и повторяются на стороне сервера.

Вы можете искать записи журнала, содержащие предполагаемые DelayFromRateLimitingInMilliseconds в журналах ресурсов Azure Cosmos DB.

Будет ли функция SSR влиять на уровень согласованности?

SSR не влияет на согласованность запросов. Запросы извлекаются на стороне сервера, если они ограничены.

Влияет ли SSR на все типы ошибок, которые могут возникать на клиенте?

Нет, повторная попытка на стороне сервера влияет только на ограничения скорости, повторив их на стороне сервера. Эта функция избавляет от необходимости обработки ошибок ограничения частоты в клиентском приложении. Все остальные ошибки будут отправлены на клиент.

Следующие шаги

Дополнительные сведения об устранении распространенных ошибок см. в этой статье:

Если вы планируете ресурсы для миграции в Azure Cosmos DB, Для планирования ресурсов можно использовать сведения об имеющемся кластере базы данных.