Você pode se conectar a um conjunto de réplicas diretamente do driver, um mongos
não é necessário, a menos que você esteja executando em um ambiente fragmentado. Os drivers geralmente usam o comando isMaster
para determinar o estado do conjunto e enviar comandos para o primário e o secundário conforme apropriado (dependendo do preferências de leitura definido, se você estiver usando as versões mais recentes ). Os drivers também lidarão com o failover automático se o primário falhar (com um pequeno atraso, é claro).
Depois que algumas pessoas tentam fragmentar, elas preferem se conectar ao mongos
em geral e permitir que ele gerencie as comunicações de volta para os conjuntos, como você pode ver em este pedido . Por enquanto, para usar mongos
dessa maneira, você precisa ter as partes mínimas do ambiente particionado configurado, mesmo que você tenha (na verdade) um fragmento.
Além disso, ocasionalmente as pessoas saberão que terão que fragmentar no futuro e começar com um fragmento em antecipação a essa necessidade futura, para que não precisem fazer nada além de adicionar um shard à configuração.
Em geral, o pré-requisito principal para ter mongos
run é o banco de dados config
(e, portanto, seus config
servidores) em funcionamento. A string de conexão que você passa para o mongos
será uma lista desses config
servidores (e deve ser a mesma em todos os mongos
que você inicia) e pelo menos um (dos três) terá que estar ativo e saudável para a função mongos
.