Eu tenho um servidor autônomo MongoDB, que estou convertendo em um conjunto de réplicas adicionando outros servidores. No entanto, alguns clientes ainda estão se conectando ao servidor original sem especificar nenhum outro servidor ou o ?replicaSet=
parâmetro no URI, e alguns desses clientes inserem novos documentos.
O que acontece com os documentos inseridos? Eles serão propagados corretamente para o restante do conjunto de réplicas? O que acontece se o mongo original mudar para o status Secundário e os clientes continuarem tentando inserir documentos?
Enquanto seus clientes estiverem se conectando ao primário do conjunto de réplicas atual, eles poderão trabalhar com documentos normalmente e essas gravações serão replicadas. Isso é útil como uma abordagem de transição ao atualizar uma implantação autônoma para um conjunto de réplicas.
No entanto, sem uma cadeia de conexão do conjunto de réplicas, seus clientes não saberão de nenhuma alteração no status do conjunto de réplicas. Se sua
mongod
função original mudar de primário para outro estado, esses clientes não poderão gravar dados: o servidor retornará um erro "não mestre" que será mapeado para uma exceção apropriada pelo driver MongoDB.Para obter mais informações sobre o comportamento esperado para drivers MongoDB com suporte oficial, você pode revisar as especificações do Server Discovery and Monitoring (SDAM) . Em particular, a seção Rationale aborda algumas opções de implementação e perguntas comuns sobre descoberta e monitoramento de topologia.
Observação para completude: se você estivesse atualizando para um cluster fragmentado, definitivamente teria que alterar sua string de conexão. Em um cluster fragmentado, todas as operações de gravação do cliente devem ser feitas por meio de um
mongos
roteador.