O termo "servidor" está, infelizmente, sobrecarregado neste contexto: pode se referir ao processo de daemon do servidor de configuração ou a um servidor físico / virtual.
Para um cluster particionado de produção executando o MongoDB 2.4, você definitivamente deve ter três processos de servidor de configuração (por exemplo, mongod --configsvr
). Não há requisitos rígidos para que esses processos sejam hospedados separadamente, portanto, você pode colocar os processos de configuração do servidor mongod
em seus ambientes de servidor existentes para economizar nos custos de hospedagem.
Os servidores de configuração geralmente são razoavelmente leves em termos de armazenamento e uso de CPU / memória, pois os metadados de um cluster fragmentado são significativamente menores que os dados reais do cluster. Se você optar por colocar os servidores de configuração, mongos
será um vizinho muito melhor do que os servidores% shar_de% shard contendo dados.
Algumas considerações importantes ao colocar componentes de cluster compartilhados incluem:
-
Resiliência: um único servidor / falha de instância agora pode fazer com que vários componentes fiquem indisponíveis.
-
Uso de recursos: vários componentes competirão pelos mesmos recursos (RAM, CPU, E / S, ...).
-
Escalonamento futuro: você deve usar CNAMEs para que os servidores de configuração permitam que eles sejam movidos para separar hosts no futuro sem tempo de inatividade.
Você também descobrirá que o primeiro servidor de configuração listado na sua string mongod
mongos
receberá uma porcentagem maior de tráfego de rede do que os outros dois servidores de configuração. Isso pode influenciar se você coloca o primeiro servidor de configuração no nó da web ou em um nó de processamento; você provavelmente deseja escolher o que tiver mais largura de banda de rede disponível atualmente.