Os drivers do MongoDB usam um algoritmo de seleção de servidor para escolher qual membro do conjunto de réplicas usar ou, quando conectados a várias instâncias mongos, qual instância mongos usar.
A seleção do servidor ocorre uma vez por operação.
Observação
As transações que contêm operações de leitura devem usar a preferência de leitura primary. Todas as operações em uma determinada transação devem ser roteadas para o mesmo nó.
Ler preferência para conjuntos de réplicas
A seleção do servidor ocorre uma vez por operação e é regida pelas configurações de preferência de leitura e localThresholdMS para determinar a elegibilidade do membro para leituras. A preferência de leitura é reavaliada para cada operação.
Modo de preferência de leitura | Processo de seleção |
|---|---|
|
|
| |
| |
| |
|
Preferência de leitura para clusters fragmentados
Balanceamento de carga
Se houver mais de uma instância mongos na lista de sementes de conexão, o driver determinará qual mongos é o "mais próximo" (ou seja, o nó com o menor tempo médio de ida e volta da rede) e calculará a janela de latência adicionando o tempo médio de ida e volta desta instância mongos "mais próxima" e do localThresholdMS. A carga do driver se equilibra aleatoriamente entre as mongos instâncias que se enquadram na janela de latência.
Observação
localThresholdMS direciona a seleção do servidor para alvos locais de menor latência. A configuração não pode remover a topologia de rede entre regiões que um único endpoint privado cria, nem garantir que todas as conexões permaneçam na região local. Nesta configuração, um cliente ainda pode se conectar por meio de um mongos em outra região.
Leia Preferências e Fragmentos
Para clusters fragmentados que têm shards de conjunto de réplicas, o mongos aplica a preferência de leitura ao ler a partir dos shards. A seleção do servidor é regida pela preferência de leitura e pelas configurações replication.localPingThresholdMs. A preferência de leitura é reavaliada para cada operação.
Leituras cobertas
mongos suporta leituras distribuídas para modos de preferências de leitura nãoprimary . Ou seja, mongos pode enviar uma leitura adicional para outro membro, se disponível, para proteger a operação de leitura se estiver usando preferências de leitura que não sejam deprimary. A leitura adicional enviada para proteger a operação de leitura utiliza o valor maxTimeMS de maxTimeMSForHedgedReads.
As leituras distribuídas são suportadas para as seguintes operações:
Para usar leituras com hedge:
o
mongosdeve ter habilitado o suporte para leituras com hedge (padrão). Consulte o parâmetroreadHedgingMode.As preferências de leitura não
primarydevem permitir o uso de leituras protegidas.
Modo de preferência de leitura | Processo de seleção |
|---|---|
|
|
| |
| |
| |
|
| [1] | (1, 2) O valor limite padrão é de 15 milissegundos. |