Evitar erros de limitação de taxa em operações do Azure Cosmos DB for MongoDB

APLICA-SE AO: MongoDB

As operações do Azure Cosmos DB for MongoDB podem encontrar limitação de taxa, resultando em 16.500 erros nas métricas de solicitação do Mongo, se excederem o limite de taxa de transferência (RUs) de uma coleção.

Ative a Repetição do Lado do Servidor (SSR) para automatizar as novas tentativas de operação. A SSR tenta novamente as solicitações em todas as coleções da sua conta com pequenos atrasos. Se o tempo limite de 60 segundos for atingido, o cliente receberá uma exceção ExceededTimeLimit (50).

Use o Portal do Azure

  1. Entre no portal do Azure.

  2. Navegue para sua conta do Azure Cosmos DB for MongoDB.

  3. Vá para o painel Recursos abaixo da seção Configurações.

  4. Selecione Repetição do Lado do Servidor.

  5. Clique em Habilitar para habilitar esse recurso para todas as coleções em sua conta.

Captura de tela do recurso de repetição do lado do servidor do Azure Cosmos DB for MongoDB

Usar a CLI do Azure

  1. Verifique se o SSR já está habilitado para sua conta:

    az cosmosdb show --name accountname --resource-group resourcegroupname
    
  2. Habilite a SSR para todas as coleções na conta de banco de dados. Pode levar até 15 minutos para que essa alteração tenha efeito.

    az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo DisableRateLimitingResponses
    
  3. O comando a seguir desabilitará a repetição do lado do servidor para todas as coleções em sua conta de banco de dados, removendo DisableRateLimitingResponses da lista de funcionalidades. Pode levar até 15 minutos para que essa alteração tenha efeito.

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

Perguntas frequentes

Como posso monitorar os efeitos de uma repetição do lado do servidor?

Você pode pesquisar por entradas de log que contenham estimatedDelayFromRateLimitingInMilliseconds em seus logs de recursos do Azure Cosmos DB.

A repetição do lado do servidor afetará meu nível de consistência?

A repetição do lado do servidor não afeta a consistência de uma solicitação. As solicitações são repetidas no lado do servidor se estiverem limitadas por taxa.

A repetição do lado do servidor afeta qualquer tipo de erro que meu cliente possa receber?

Não, a nova tentativa no lado do servidor afeta somente os erros de limitação de taxa, repetindo-os no lado do servidor. Esse recurso impede que você precise manipular erros de limitação de taxa no aplicativo cliente. Todos os outros erros vão para o cliente.

Próximas etapas

Para saber mais sobre como solucionar erros comuns, veja este artigo:

Tentando fazer um Planejamento da capacidade para uma migração para o Azure Cosmos DB? Você pode usar informações sobre o cluster de banco de dados existente para fazer isso.