Os drivers oficiais do MongoDB implementam um Especificação do Server Discovery and Monitoring (SDAM) , que está disponível no GitHub no % repositóriomongodb/specifications
. A especificação do SDAM entra em mais detalhes sobre o comportamento esperado e a justificativa para os drivers.
A expectativa atual é de que clientes sempre usarão os nomes de host listados na configuração do conjunto de réplicas , não a lista de propagação fornecida em uma cadeia de conexão. A principal motivação para isso é ativar o failover e a reconfiguração automáticos com base em uma configuração de conjunto de réplicas (que inclui nomes de host e portas).
Is there any solution to this other than messing with /etc/hosts on the clients system?
Se você não precisar de failover, poderá se conectar a um único servidor em vez de usar uma conexão de conjunto de réplicas. Uma conexão autônoma / direta não deve implementar nenhuma descoberta de servidor.
No entanto, se você estiver se conectando a outro servidor que não seja autônomo, não há soluções alternativas no momento além de mexer na resolução do nome do host para corresponder à configuração do conjunto de réplicas ou estender o perímetro de rede (por exemplo, usando uma VPN).
Uma sugestão de recurso relevante para upvote / assistir é: SERVIDOR-1889: Suporte a redes / nics diferentes para o cliente & tráfego de replicação . Isso poderia permitir a separação da comunicação da rede interna para o conjunto de réplicas das conexões do cliente.