Visão geral
Esta seção descreve as opções de conexão e autenticação do MongoDB disponíveis no driver Ruby. Você pode configurar sua conexão usando o URI de conexão (também chamado de string de conexão ) ou passando argumentos para o Mongo::Client construtor.
Como utilizar o URI de conexão
Se você passar um URI de conexão para o construtor Mongo::Client, poderá incluir opções de conexão na cadeia de caracteres como pares <name>=<value>. No exemplo a seguir, o URI de conexão contém a opção connectTimeoutMS com um valor de 60000 e a opção tls com um valor de true:
uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true" client = Mongo::Client.new(uri)
Usando um Mongo::Client
Você pode passar as opções de conexão como argumentos para o construtor Mongo::Client em vez de incluí-las em seu URI de conexão. Ao configurar sua conexão dessa forma, é mais fácil para você alterar as configurações no tempo de execução e detectar erros durante a compilação. O exemplo seguinte mostra como utilizar o construtor Mongo::Client para configurar opções de conexão:
uri = "mongodb://<hostname>:<port>" client = Mongo::Client.new(uri, connect_timeout: 60000, ssl: true)
Opções de conexão
As seções a seguir descrevem as opções de conexão disponíveis no driver Ruby.
Compactação de rede
Tempo limite
Opção de conexão | Descrição |
|---|---|
:connect_timeout | O número de segundos para aguardar para estabelecer uma conexão de soquete antes de gerar uma exceção. Esse tempo limite também é usado para resolução de registro DNS SRV. |
:timeout_ms | O número de milissegundos para aguardar a execução de uma operação antes de gerar uma exceção. |
Seleção do Servidor
Opção de conexão | Descrição |
|---|---|
:load_balanced | Se deve esperar para se conectar a um balanceador de carga. |
:server_monitoring_mode | O protocolo de monitoramento do servidor a ser usado. Quando essa opção é definida como Tipo de dados: |
:server_selection_timeout | A quantidade máxima de tempo, em segundos, que o driver aguarda o sucesso da seleção do servidor antes de lançar uma exceção. |
Para obter mais informações sobre a seleção de servidor, consulte o guia Seleção de Servidor.
Autenticação
Opção de conexão | Descrição |
|---|---|
:auth_mech | O mecanismo que o driver Ruby usa para autenticar o aplicativo. |
:auth_mech_properties | Opções específicas para o mecanismo de autenticação. Esta opção não é necessária para todos os mecanismos de autenticação. |
:auth_source | O banco de dados para autenticar. |
: user | |
:password |
Operações de leitura e escrita
Opção de conexão | Descrição |
|---|---|
:replica_set | Especifica o nome do conjunto de réplicas ao qual se conectar. |
:direct_connection | Se deve conectar diretamente ao hospedar especificado |
:enable_overload_tartargeting | Se o driver desprioriza um servidor que retorna um erro de sobrecarga, reduzindo a probabilidade de tentar novamente no mesmo servidor sobrecarregado. |
:max_adaptive_retry | O número máximo de tentativas a serem feitas quando o driver encontrar erros de sobrecarga. |
:read | As opções de preferência de leitura . Para obter mais informações, consulte Preferência de leitura no manual do MongoDB Server . |
:read_concern | Especifica as opções de preocupação de leitura . Para obter mais informações, consulte Read Concern no manual do MongoDB Server . |
:write_concern | Especifica a preocupação de gravação do cliente. Para obter mais informações, consulte Write Concern no manual do MongoDB Server . |
:local_threshold | A janela de latência, em segundos, para a elegibilidade de um nó do conjunto de réplicas. Se o ping de ida e volta de um nó demorar mais do que o tempo de ping de ida e volta do servidor mais rápido mais esse valor, o servidor não estará qualificado para seleção. |
Pool de Conexões
Opção de conexão | Descrição |
|---|---|
:max_pool_size | O número máximo de conexões simultâneas que o pool mantém. Se o número de conexões em uso com um servidor atingir o valor especificado, a próxima solicitação para esse servidor aguardará até que uma conexão fique disponível. Definir esta opção como |
:max_connecting | O número máximo de conexões que cada pool pode estabelecer simultaneamente. |
:min_pool_size | O número mínimo de conexões simultâneas que o pool mantém. |
:max_idle_time | O número máximo de segundos que uma conexão pode permanecer ociosa no pool. |
Para obter mais informações sobre pools de conexões, consulte o guia pools de conexões.
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 Ruby MongoDB para a versão 2.24 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 .
Documentação da API
Para obter mais informações sobre as opções de Mongo::Client para o driver Ruby, consulte a documentação da API do Mongo::Client.