Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Rails Octopus Gem - Comportamento da conexão Master-Slave Replication quando o slave está inativo


Como li esta postagem do blog um escravo desligado ou sem resposta pode causar falhas no aplicativo porque o comportamento padrão do Octopus é gravar todos os dados no mestre e ler todos os dados dos escravos (já que os dados gravados no mestre são replicados para todos os escravos conectados). Conforme declarado no wiki do Octopus, seção "Vários escravos" a leitura em um ambiente de vários escravos é feita usando round robin, então está sempre recuperando dados de um escravo por padrão.

Também retirado do blog mencionado acima:como um mecanismo de fallback, você deve ler os dados do Mestre diretamente (usando .using(:master) ) se nenhum dos nós Slave estiver disponível ou os dados ainda não tiverem sido totalmente replicados para os slaves. Também pode ser uma opção para armazenar em cache as alterações/resultados do aplicativo para evitar leituras repetidas dos nós do banco de dados.