Visão geral
Esta página descreve as opções de conexão disponíveis no driver C e explica como especificá-las para sua conexão do MongoDB usando uma opção de string de conexão ou URI.
Como especificar opções de conexão
As seções a seguir descrevem maneiras de especificar opções de conexão.
Use a string de conexão
Se você passar uma string de conexão para a estrutura monogoc_client_t, poderá incluir opções de conexão na string como <name>=<value> pares. No exemplo a seguir , a string de conexão contém a opção connectTimeoutMS com um valor de 60000 e a opção tls com um valor de true:
mongoc_init(); // Specifies the connection options in the connection string const char *uri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; // Creates a new client mongoc_client_t *client = mongoc_client_new_from_uri_with_error(uri, &error); if (!client) { fprintf(stderr, "%s\n", error.message); goto cleanup; } // Use client... cleanup: mongoc_client_destroy(client); mongoc_uri_destroy(uri);
Para saber mais sobre as opções que você pode especificar em uma string de conexão, consulte Opções de string de conexão no manual do MongoDB Server.
Usar a API de opções de URI
Você pode usar opções de URI para definir as configurações de conexão no código em vez de em uma string de conexão. Configurar a conexão dessa forma facilita a alteração das configurações no tempo de execução, ajuda a detectar erros durante a compilação e fornece mais opções de configuração do que a string de conexão.
Para definir opções de conexão usando a opção URI, execute as seguintes etapas:
Crie uma estrutura
mongoc_uri_tcom sua string de conexãoUse uma função de opção de URI para especificar a opção de conexão desejada
Crie um novo cliente com o URI passando o URI para
mongoc_client_new_from_uri()
O seguinte exemplo de código mostra como executar as etapas anteriores:
mongoc_uri_t *uri = mongoc_uri_new_with_error("mongodb+srv://localhost:27017/", &error); if (!uri) { fprintf(stderr, "%s\n", error.message); goto cleanup; } // Specifies the connection options by using the URI options API if (!mongoc_uri_set_option_as_int32(uri, MONGOC_URI_CONNECTTIMEOUTMS, 60000)) { fprintf(stderr, "Failed to set '%s'\n", MONGOC_URI_CONNECTTIMEOUTMS); goto cleanup; } if (!mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLS, true)) { fprintf(stderr, "Failed to set '%s'\n", MONGOC_URI_TLS); goto cleanup; } // Creates a new client client = mongoc_client_new_from_uri_with_error(uri, &error); if (!client) { fprintf(stderr, "%s\n", error.message); goto cleanup; } // Use client... cleanup: mongoc_client_destroy(client); mongoc_uri_destroy(uri);
Opções de conjunto de réplicas
Conexão direta
Especifica se deve forçar o envio de todas as operações para o host. Se você especificar esta opção, o driver não aceitará o formato de conexão SRV. Em vez disso, você deve usar o formato padrão de URI de conexão. Para saber mais sobre a conexão SRV e os formatos de conexão padrão, consulte o guia string de conexão no manual do MongoDB Server.
Esta propriedade deve ser configurada para false se você especificar mais de um nome de host.
Tipo de Dados: boolean
Valor padrão: false
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb://localhost:27017/?directConnection=true");
Conjunto de réplicas
O nome do conjunto de réplicas a que se conectar.
Tipo de Dados: char*
Valor padrão: NULL
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?replicaSet=yourReplicaSet");
Conexão direta
Especifica se deve forçar o envio de todas as operações para o host. Se você especificar esta opção, o driver não aceitará o formato de conexão SRV. Em vez disso, você deve usar o formato padrão de URI de conexão. Para saber mais sobre a conexão SRV e os formatos de conexão padrão, consulte o guia string de conexão no manual do MongoDB Server.
Esta propriedade deve ser configurada para false se você especificar mais de um nome de host.
Tipo de Dados: boolean
Valor padrão: false
Exemplo:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_DIRECTCONNECTION, true);
Conjunto de réplicas
O nome do conjunto de réplicas a que se conectar.
Tipo de Dados: char*
Valor padrão: NULL
Exemplo:
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_REPLICASET, "yourReplicaSet");
Opções de TLS
Habilitar TLS
Especifica se é necessário o TLS para conexões com o servidor. Se você usar um esquema de "mongodb+srv" ou especificar outras opções de TLS, essa opção será padronizada como true. Caso contrário, o padrão é false.
Tipo de Dados: boolean
Valor padrão: false
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?tls=true");
Permitir TLS Inseguro
Especifica se as restrições TLS devem ser relaxadas tanto quanto possível. Isso pode incluir permitir certificados inválidos ou incompatibilidades de nomes de host.
Tipo de Dados: boolean
Valor padrão: false
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?tls=true&tlsInsecure=true");
Verificação de revogação de certificado de desativação do TLS
Se a verificação de revogação de certificado deve ser desabilitada durante a negociação TLS.
Tipo de Dados: boolean
Valor padrão: false
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?tls=true&tlsDisableCertificateRevocationCheck=true");
Habilitar TLS
Especifica se é necessário o TLS para conexões com o servidor. Se você usar um esquema de "mongodb+srv" ou especificar outras opções de TLS, essa opção será padronizada como true. Caso contrário, o padrão é false.
Tipo de Dados: boolean
Valor padrão: false
Exemplo:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLS, true);
Permitir TLS Inseguro
Especifica se as restrições TLS devem ser relaxadas tanto quanto possível. Isso pode incluir permitir certificados inválidos ou incompatibilidades de nomes de host.
Tipo de Dados: boolean
Valor padrão: false
Exemplo:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLSINSECURE, true);
Verificação de revogação de certificado de desativação do TLS
Se a verificação de revogação de certificado deve ser desabilitada durante a negociação TLS.
Tipo de Dados: boolean
Valor padrão: false
Exemplo:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLSDISABLECERTIFICATEREVOCATIONCHECK, true);
Para obter mais informações sobre as opções de TLS, consulte o guia Configurar o TLS (Transport Layer Security).
Opções de tempo limite
ConnectTimeout
O período de tempo em que o driver tenta estabelecer uma única conexão de soquete TCP com o servidor antes de atingir o tempo limite.
Tipo de Dados: integer
Valor padrão: 10000 (10 segundos)
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?connectTimeoutMS=60000");
Tempo limite do soquete
O período de tempo em que o driver tenta enviar ou receber em um soquete antes de atingir o tempo limite. O valor padrão é definido pelo sistema operacional.
Tipo de Dados: integer
Valor padrão: 300000 (5 minutos)
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?socketTimeoutMS=60000");
ConnectTimeout
O período de tempo em que o driver tenta estabelecer uma única conexão de soquete TCP com o servidor antes de atingir o tempo limite.
Tipo de Dados: integer
Valor padrão: 10000 (10 segundos)
Exemplo:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_CONNECTTIMEOUTMS, 60000);
Tempo limite do soquete
O período de tempo em que o driver tenta enviar ou receber em um soquete antes de atingir o tempo limite. O valor padrão é definido pelo sistema operacional.
Tipo de Dados: integer
Valor padrão: 300000 (5 minutos)
Exemplo:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SOCKETTIMEOUTMS, 60000);
Opções de compressão
Compressores
Os tipos de compactação preferidos, em ordem, para mensagens de wire protocol enviadas ou recebidas do servidor. Você pode habilitar "snappy", "zlib" e "zstd" como dependências opcionais do tempo de compilação. O driver usa o primeiro desses tipos de compactação compatíveis com o servidor.
Tipo de Dados: char*
Valor padrão: NULL
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?compressors=zlib,snappy");
Compressores
Os tipos de compactação preferidos, em ordem, para mensagens de wire protocol enviadas ou recebidas do servidor. Você pode habilitar "snappy", "zlib" e "zstd" como dependências opcionais do tempo de compilação. O driver usa o primeiro desses tipos de compactação compatíveis com o servidor.
Tipo de Dados: char*
Valor padrão: NULL
Exemplo:
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_COMPRESSORS, "zlib,snappy");
Opções do pool de conexões
maxPoolSize
O maior número de clientes ou conexões que o driver pode criar em seu pool de conexões. Esta contagem inclui conexões em uso.
Tipo de Dados: integer
Valor padrão: 100
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?maxPoolSize=150");
Tempo limite da fila de espera
O período de tempo em que o driver tenta verificar uma conexão do pool de conexões de um servidor antes de atingir o tempo limite.
Tipo de Dados: integer
Valor padrão: -1 (sem tempo limite)
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?waitQueueTimeoutMS=30000");
MaxConnectionPoolSize
O maior número de clientes ou conexões que o driver pode criar em seu pool de conexões. Esta contagem inclui conexões em uso.
Tipo de Dados: integer
Valor padrão: 100
Exemplo:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_MAXPOOLSIZE, 150)
Você também pode definir o tamanho máximo do pool de conexões usando uma estrutura mongoc_client_pool_t:
mongoc_client_pool_t *pool = mongoc_client_pool_new(uri); // Specifies max pool size mongoc_client_pool_max_size(pool, 150);
Tempo limite da fila de espera
O período de tempo em que o driver tenta verificar uma conexão do pool de conexões de um servidor antes de atingir o tempo limite.
Tipo de Dados: integer
Valor padrão: 0
Exemplo:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_WAITQUEUETIMEOUTMS, 30000);
Para saber mais sobre pool de conexões, consulte o Guia de pool de conexões.
Opções de write concern
w
O componente w da preocupação de gravação, que solicita a confirmação de que a operação de escrita se propagou para um número específico de instâncias do MongoDB . O valor padrão é "majority" ou 1, dependendo do número de árbitros e nós de votação. Para saber mais sobre a opção w, consulte Write Concern no manual do MongoDB Server.
Tipo de Dados: integer ou char*
Valor padrão: 1 ou "majority"
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?w=2");
tempo esgotado
O componente wtimeoutms da preocupação de gravação, que especifica um limite de tempo para a preocupação de gravação. Para saber mais sobre a opção wtimeout, consulte Write Concern no manual do MongoDB Server.
Tipo de Dados: integer
Valor padrão: 0
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?wTimeoutMS=5000");
Journal
O componente j do preocupação de gravação, que solicita a confirmação de que as instâncias do MongoDB foram escritas no diário no disco.
Tipo de Dados: boolean
Valor padrão: false
Para saber mais sobre a j opção, consulte Write Concern no manual do MongoDB Server .
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?journal=true");
w
O componente w da preocupação de gravação, que solicita a confirmação de que a operação de escrita se propagou para um número específico de instâncias do MongoDB . O valor padrão é "majority" ou 1, dependendo do número de árbitros e nós de votação. Para saber mais sobre a opção w, consulte Write Concern no manual do MongoDB Server.
Tipo de Dados: integer ou char*
Valor padrão: 1 ou "majority"
Você pode definir w usando a opção MONGOC_URI_W:
Exemplo:
// Use the int32 version of the mongoc_uri_t set function to set integer values mongoc_uri_set_option_as_int32(uri, MONGOC_URI_W, 2); // Use the utf8 version of the mongoc_uri_t set function to set string values mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_W, "majority");
Você também pode definir w usando uma estrutura mongoc_write_concern_t:
// Creates a write concern structure mongoc_write_concern_t *write_concern = mongoc_write_concern_new(); // Sets w=2 mongoc_write_concern_set_w(write_concern, 2); mongoc_client_set_write_concern(client, write_concern);
tempo esgotado
O componente wtimeoutms da preocupação de gravação, que especifica um limite de tempo para a preocupação de gravação. Para saber mais sobre a opção wtimeout, consulte Write Concern no manual do MongoDB Server.
Tipo de Dados: integer
Valor padrão: 0
Você pode definir wtimeoutms usando a opção MONGOC_URI_WTIMEOUTMS:
Exemplo:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_WTIMEOUTMS, 5000);
Você também pode definir wtimeoutms usando uma estrutura mongoc_write_concern_t:
// Creates a write concern structure mongoc_write_concern_t *write_concern = mongoc_write_concern_new(); // Sets w=2 mongoc_write_concern_set_wtimeout(write_concern, 5000); // Apply write concern to client mongoc_client_set_write_concern(client, write_concern);
Journal
O componente j do preocupação de gravação, que solicita a confirmação de que as instâncias do MongoDB foram escritas no diário no disco. O valor padrão depende do valor na configuração writeConcernMajorityJournalDefault. Para saber mais sobre a opção j, consulte Write Concern no manual do MongoDB Server.
Tipo de Dados: boolean
Valor padrão: false
Você pode definir journal usando a opção MONGOC_URI_JOURNAL:
Exemplo:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_JOURNAL, true);
Você também pode definir journal usando uma estrutura mongoc_write_concern_t:
// Creates a write concern structure mongoc_write_concern_t *write_concern = mongoc_write_concern_new(); // Sets journal to true mongoc_write_concern_set_journal(write_concern, true); // Apply write concern to client mongoc_client_set_write_concern(client, write_concern);
Opções de read concern
Nível de read concern
O nível de preocupação de leitura do cliente. Para obter mais informações, consulte a referência preocupação de leitura no manual do MongoDB Server.
Tipo de Dados: char*
Valor padrão: local
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readConcernLevel=local");
Nível de read concern
O nível de preocupação de leitura do cliente. Para obter mais informações, consulte a referência preocupação de leitura no manual do MongoDB Server.
Tipo de Dados: char*
Valor padrão: local
Você pode definir o nível de preocupação de leitura usando a opção MONGOC_URI_READCONCERNLEVEL:
Exemplo:
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_READCONCERNLEVEL, "local")
Você também pode definir o nível de preocupação de leitura usando uma estrutura mongoc_read_concern_t:
mongoc_read_concern_t *read_concern = mongoc_read_concern_new(); // Set the read concern level to "local" mongoc_read_concern_set_level(read_concern, MONGOC_READ_CONCERN_LEVEL_LOCAL); mongoc_client_set_read_concern(client, read_concern);
Opções de read preference
readPreference
As configurações de preferência de leitura padrão do cliente. Consulte Preferência de leitura no manual do MongoDB Server para obter mais informações.
Tipo de Dados: char*
Valor padrão: primary
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readPreference=primaryPreferred");
maxstaleness
Máximo de segundos de atraso representa o maior atraso de replicação, em tempo real, que um secundário pode enfrentar e ainda ser qualificado para seleção de servidor . O menor valor permitido para maxStalenessSeconds é 90 segundos. Esta opção deve ser usada com uma preferência de leitura não primária.
Tipo de Dados: integer
Valor padrão: -1
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?readPreference=secondary&maxStalenessSeconds=120");
LocalThreshold
A janela de latência para elegibilidade do servidor. Se a viagem de ida e volta de um servidor demorar mais do que o tempo de ida e volta do servidor mais rápido mais esse valor, o servidor não estará qualificado para seleção.
Tipo de Dados: integer
Valor padrão: 15
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?localThresholdMS=150");
readPreference
As configurações de preferência de leitura padrão do cliente. Consulte Preferência de leitura no manual do MongoDB Server para obter mais informações.
Tipo de Dados: char*
Valor padrão: primary
Você pode definir a preferência de leitura usando uma estrutura mongoc_read_prefs_t:
Exemplo:
mongoc_client_t *client = mongoc_client_new("mongodb+srv://localhost:27017/"); // Specifies the read preference mongoc_read_prefs_t *read_prefs = mongoc_read_prefs_new(MONGOC_READ_PRIMARY_PREFERRED); mongoc_client_set_read_prefs(client, read_prefs);
Você também pode definir a preferência de leitura usando a opção MONGOC_URI_READPREFERENCE:
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_READPREFERENCE, "primaryPreferred")
maxstaleness
Máximo de segundos de atraso representa o maior atraso de replicação, em tempo real, que um secundário pode enfrentar e ainda ser qualificado para seleção de servidor . O menor valor permitido para maxStalenessSeconds é 90 segundos. Esta opção deve ser usada com uma preferência de leitura não primária.
Tipo de Dados: integer
Valor padrão: -1
Exemplo:
mongoc_client_t *client = mongoc_client_new("mongodb+srv://localhost:27017/"); mongoc_read_prefs_t *read_prefs = mongoc_read_prefs_new(MONGOC_READ_SECONDARY); // Specifies max staleness to 120 seconds mongoc_read_prefs_set_max_staleness_seconds(read_prefs, 120); mongoc_client_set_read_prefs(client, read_prefs);
LocalThreshold
A janela de latência para elegibilidade do servidor. Se a viagem de ida e volta de um servidor demorar mais do que o tempo de ida e volta do servidor mais rápido mais esse valor, o servidor não estará qualificado para seleção.
Tipo de Dados: integer
Valor padrão: 15
Exemplo:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_LOCALTHRESHOLDMS, 150);
Opções de autenticação
Mecanismo de autenticação
O mecanismo que o driver usa para autenticar no MongoDB Server. Se você não especificar um mecanismo de autenticação, o driver usará SCRAM-SHA-1 ou SCRAM-SHA-256, dependendo da versão do servidor.
Para saber mais sobre os mecanismos de autenticação disponíveis, consulte o guia Mecanismos de autenticação ou Mecanismos de autenticação empresarial.
Tipo de Dados: char*
Valor padrão: SCRAM-SHA-256 (para MongoDB 7600 4.0 e posterior)
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?authSource=admin&authMechanism=GSSAPI");
Mecanismo de autenticação
O mecanismo que o driver usa para autenticar no MongoDB Server. Se você não especificar um mecanismo de autenticação, o driver usará SCRAM-SHA-1 ou SCRAM-SHA-256, dependendo da versão do servidor.
Para saber mais sobre os mecanismos de autenticação disponíveis, consulte o guia Mecanismos de autenticação ou Mecanismos de autenticação empresarial.
Tipo de Dados: char*
Valor padrão: SCRAM-SHA-256 (para MongoDB 7600 4.0 e posterior)
Exemplo:
mongoc_uri_set_auth_mechanism(uri, "GSSAPI");
Seleção de servidor e opções de descoberta
Frequência de pulsação
O intervalo entre as verificações de monitoramento do servidor . Deve ser maior ou igual a 500 milissegundos. O valor padrão é 10000 ms (10 segundos) no modo agrupado (multithreaded) e 60000 ms (60 segundos) no modo não agrupado (single-threaded).
Tipo de Dados: integer
Valor padrão: 10000 para clientes em pool, 60000 para clientes em thread único
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?heartbeatFrequencyMS=5000");
ServerSelectionTimeout
O período durante o qual o driver tenta selecionar um servidor antes do tempo limite.
Tipo de Dados: integer
Valor padrão: 30000
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?serverSelectionTimeoutMS=40000");
Intervalo de verificação do soquete
Aplica-se apenas a clientes de thread único. Se um soquete não tiver sido usado dentro desse período, o driver verificará a conexão com um rápido "olá" ligue antes de ser usado novamente.
Tipo de Dados: integer
Valor padrão: 5000
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?socketCheckIntervalMS=10000");
Frequência de pulsação
O intervalo entre as verificações de monitoramento do servidor . Deve ser maior ou igual a 500 milissegundos. O valor padrão é 10000 ms (10 segundos) no modo agrupado (multithreaded) e 60000 ms (60 segundos) no modo não agrupado (single-threaded).
Tipo de Dados: integer
Valor padrão: 10000
Exemplo:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_HEARTBEATFREQUENCYMS, 5000);
ServerSelectionTimeout
O período durante o qual o driver tenta selecionar um servidor antes do tempo limite.
Tipo de Dados: integer
Valor padrão: 30000
Exemplo:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SERVERSELECTIONTIMEOUTMS, 40000);
Intervalo de verificação do soquete
Aplica-se apenas a clientes de thread único. Se um soquete não tiver sido usado dentro desse período, o driver verificará a conexão com um rápido "olá" ligue antes de ser usado novamente.
Tipo de Dados: integer
Valor padrão: 5000
Exemplo:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SOCKETCHECKINTERVALMS, 10000);
Opções de repetição
RetryReads
Permite leituras que podem ser repetidas.
Tipo de Dados: boolean
Valor padrão: true
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?retryReads=false");
RetryWrites
Habilita gravações que podem ser tentadas novamente.
Tipo de Dados: boolean
Valor padrão: true com suporte de TLS, false caso contrário
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?retryWrites=false");
RetryReads
Permite leituras que podem ser repetidas.
Tipo de Dados: boolean
Valor padrão: true
Exemplo:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_RETRYREADS, false)
RetryWrites
Habilita gravações que podem ser tentadas novamente.
Tipo de Dados: boolean
Valor padrão: true
Exemplo:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_RETRYWRITES, false);
Observação
Redução de carga no Intelligent Workload Management (IWM)
Se os erros com rótulos SystemOverloadedError ou RetryableError estiverem causando falhas no seu aplicação ou aparecendo nos registros do seu aplicação , a redução de carga pode estar ativa no seu cluster e seu driver pode não estar atualizado para uma versão compatível. Recomendamos atualizar seu driver MongoDB C para a versão 2.3 ou posterior. Se você continuar a ver esses erros após a atualização, poderá resolvê-los por meio de alterações no servidor, como a revisão da configuração do Descarte de carga, ou por meio de alterações no aplicativo, como a implementação de um tratamento personalizado de erros ou a limitação de solicitações do lado do cliente . Dependendo da sua situação, alterações no aplicativo podem ser preferíveis ou necessárias.
O descarte de carga é um recurso do IWM e ajuda a gerenciar a carga do servidor rejeitando operações em excesso durante a sobrecarga sustentada. Este recurso está disponível no MongoDB 9.0 e posterior.
Para obter mais informações sobre IWM ou lidar com erros de sobrecarga, consulte a página Gerenciamento Inteligente de Volume de Trabalho ou a página Erros de Sobrecarga na documentação do Atlas .
Opções diversas
Nome do aplicativo
O nome do aplicativo que o driver passa para o servidor nos metadados do cliente como parte da confirmação de conexão. O servidor imprime esse valor nos logs do MongoDB uma vez que a conexão é estabelecida. O valor também é registrado nos logs de query lentos e nas coleções de perfil.
Tipo de Dados: char*
Valor padrão: vazio
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?appName=yourAppName");
loadBalanced
Especifica se o driver está se conectando a um balanceador de carga . Você pode definir esta propriedade como true somente se todas as seguintes condições forem atendidas:
Você especifica apenas um nome de host
Você não está conectando a um conjunto de réplicas
Você não está usando a propriedade
SrvMaxHostsVocê não está usando a propriedade
DirectConnection
Tipo de Dados: boolean
Valor padrão: false
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?loadBalanced=true");
srvMaxHosts
O maior número de resultados SRV a serem selecionados aleatoriamente ao preencher inicialmente a lista de sementes ou, durante a sondagem SRV, adicionar novos hosts à topologia.
Você pode usar esta propriedade somente se o esquema de cadeia de conexão estiver definido como ConnectionStringScheme.MongoDBPlusSrv. Você não pode usá-lo ao conectar-se a um conjunto de réplicas.
Tipo de Dados: integer
Valor padrão: 0
Exemplo:
mongoc_uri_t *uri = mongoc_uri_new("mongodb+srv://localhost:27017/?srvMaxHosts=5");
Nome do aplicativo
O nome do aplicativo que o driver passa para o servidor nos metadados do cliente como parte da confirmação de conexão. O servidor imprime esse valor nos logs do MongoDB uma vez que a conexão é estabelecida. O valor também é registrado nos logs de query lentos e nas coleções de perfil.
Tipo de Dados: char*
Valor padrão: empty
Exemplo:
mongoc_uri_set_option_as_utf8(uri, MONGOC_URI_APPNAME, "yourAppName");
loadBalanced
Especifica se o driver está se conectando a um balanceador de carga . Você pode definir esta propriedade como true somente se todas as seguintes condições forem atendidas:
Você especifica apenas um nome de host
Você não está conectando a um conjunto de réplicas
Você não está usando a propriedade
SrvMaxHostsVocê não está usando a propriedade
DirectConnection
Tipo de Dados: boolean
Valor padrão: false
Exemplo:
mongoc_uri_set_option_as_bool(uri, MONGOC_URI_LOADBALANCED, true);
srvMaxHosts
O maior número de resultados SRV a serem selecionados aleatoriamente ao preencher inicialmente a lista de sementes ou, durante a sondagem SRV, adicionar novos hosts à topologia.
Você pode usar esta propriedade somente se o esquema de cadeia de conexão estiver definido como ConnectionStringScheme.MongoDBPlusSrv. Você não pode usá-lo ao conectar-se a um conjunto de réplicas.
Tipo de Dados: integer
Valor padrão: 0
Exemplo:
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_SRVMAXHOSTS, 5);
Informações adicionais
Para obter mais informações sobre os tipos usados nesta página, consulte a seguinte documentação da API: