Partilhar via


Ajustar configurações de conexão para o Azure Cosmos DB .NET SDK v3

Importante

As informações neste artigo são apenas para o Azure Cosmos DB .NET SDK v3. Consulte os modos de conectividade do Azure Cosmos DB SQL SDK, as notas de versão do Azure Cosmos DB .NET SDK v3, o repositório Nuget e o guia de solução de problemas do Azure Cosmos DB .NET SDK v3 para obter mais informações. Se você estiver usando uma versão mais antiga do que a v3, consulte o guia Migrar para o Azure Cosmos DB .NET SDK v3 para obter ajuda na atualização para a v3.

O Azure Cosmos DB é um banco de dados distribuído rápido e flexível que pode ser dimensionado perfeitamente com latência e taxa de transferência garantidas. Você não precisa fazer grandes alterações na arquitetura ou escrever código complexo para dimensionar seu banco de dados com o Azure Cosmos DB. Escalar para cima e para baixo é tão fácil quanto fazer uma única chamada de API ou chamada de método SDK. No entanto, como o Azure Cosmos DB é acessado por meio de chamadas de rede, há configurações de conexão que você pode ajustar para obter o desempenho máximo ao usar o Azure Cosmos DB .NET SDK v3.

Configuração da conexão

Nota

No Azure Cosmos DB . NETS SDK v3, modo direto é a melhor escolha na maioria dos casos para melhorar o desempenho do banco de dados com a maioria das cargas de trabalho.

Para saber mais sobre as diferentes opções de conectividade, consulte o artigo Modos de conectividade.

Modo de conexão direta

O modo de conexão padrão do SDK do .NET é direto. No modo direto, as solicitações são feitas usando o protocolo TCP. O modo Internamente Direto usa uma arquitetura especial para gerenciar dinamicamente os recursos da rede e obter o melhor desempenho. A arquitetura do lado do cliente empregada no modo Direto permite a utilização previsível da rede e o acesso multiplexado às réplicas do Azure Cosmos DB. Para saber mais sobre arquitetura, consulte a arquitetura de conexão de modo direto.

Você configura o modo de conexão ao criar a CosmosClient instância no CosmosClientOptions.

CosmosClient client = new CosmosClient(
  "<nosql-account-endpoint>",
  tokenCredential
  new CosmosClientOptions
  {
      ConnectionMode = ConnectionMode.Gateway // ConnectionMode.Direct is the default
  }
);

Personalizando o modo de conexão direta

O modo direto pode ser personalizado através do CosmosClientOptions passado para o construtor CosmosClient . Recomendamos que os usuários evitem modificá-los, a menos que se sintam confortáveis em entender as compensações e seja necessário.

Opção de configuração Predefinido Recomendado Detalhes
EnableTcpConnectionEndpointRediscovery verdadeiro verdadeiro Isso representa o sinalizador para permitir a deteção de conexões que fecham a partir do servidor.
IdleTcpConnectionTimeout Por padrão, as conexões ociosas são mantidas abertas indefinidamente. 20m-24h Isso representa a quantidade de tempo ocioso após o qual as conexões não utilizadas são fechadas. Os valores recomendados são entre 20 minutos e 24 horas.
MaxRequestsPerTcpConnection 30 30 Isso representa o número de solicitações permitidas simultaneamente em uma única conexão TCP. Quando mais solicitações estão em voo simultaneamente, o cliente direto/TCP abre conexões extras. Não defina esse valor abaixo de quatro solicitações por conexão ou superior a 50-100 solicitações por conexão. Aplicativos com alto grau de paralelismo por conexão, com grandes solicitações ou respostas ou com requisitos de latência apertados podem obter melhor desempenho com 8 a 16 solicitações por conexão.
MaxTcpConnectionsPerEndpoint 65535 65535 Isso representa o número máximo de conexões TCP que podem ser abertas para cada back-end do Cosmos DB. Juntamente com MaxRequestsPerTcpConnection, essa configuração limita o número de solicitações enviadas simultaneamente para um único back-end do Cosmos DB (MaxRequestsPerTcpConnection x MaxTcpConnectionPerEndpoint). O valor deve ser maior ou igual a 16.
OpenTcpConnectionTimeout 5 segundos 1 segundo Isso representa a quantidade de tempo permitida para tentar estabelecer uma conexão. Quando o tempo passa, a tentativa é cancelada e um erro é retornado. Tempos limite mais longos atrasam novas tentativas e falhas.
PortReuseMode PortReuseMode.ReuseUnicastPort PortReuseMode.ReuseUnicastPort Isso representa a política de reutilização da porta do cliente usada pela pilha de transporte.

Personalizando o modo de conexão do gateway

O modo Gateway pode ser personalizado através do CosmosClientOptions passado para o construtor CosmosClient . Recomendamos que os usuários evitem modificá-los, a menos que se sintam confortáveis em entender as compensações e seja necessário.

Opção de configuração Predefinido Recomendado Detalhes
GatewayModeMaxConnectionLimit 50 50 Isso representa o número máximo de conexões simultâneas permitidas para o ponto de extremidade do serviço de destino no serviço Azure Cosmos DB.
WebProxy nulo nulo Isso representa as informações de proxy usadas para solicitações da Web.

Próximos passos

Para saber mais sobre dicas de desempenho para o SDK do .NET, consulte Dicas de desempenho para o Azure Cosmos DB NET SDK v3.