Crie novas conexões do MySQL quando o status somente leitura for detectado - failover do AWS RDS

1

Apache Tomcat / 7, CentOS, AWS RDS Aurora 5.6.10a

O AWS fornece um CNAME de cluster que, a qualquer momento, aponta para a instância do gravador do cluster. por exemplo. dbname-cluster.cluster-id.us-west-2.rds.amazonaws.com Esse nome é usado no valor do URL do recurso e não é alterado. Depois que o failover é concluído, o registro CNAME aponta para a instância do escritor recém-promovida, na qual o tráfego do SQL continuará funcionando.

O problema configurado é que a conexão entre o aplicativo e a instância do MySQL não muda, portanto, após o failover criar problemas, o banco de dados estará em modo somente leitura. Isso requer que o Tomcat seja reiniciado. Desativar o cache do Java DNS definindo networkaddress.cache.ttl = 0 em $ JAVA_HOME / jre / lib / security / java.security supera esse problema, pois o conector tentará novamente após a ocorrência da falha e, em seguida, conectará à instância do gravador . Uma desvantagem é a perda de cache DNS para o aplicativo. Eu estou procurando um método para testar periodicamente o estado do banco de dados e, se determinado a ser somente leitura, crie uma nova conexão para o mesmo URL.

Eu li sobre o MySQL, o JDBC High Availability e o Clustering, mas no contexto de listar servidores MySQL primários e secundários. No meu caso, a URL do servidor nunca muda, portanto, o método com failover para outra URL do servidor não se ajusta. Minhas esperanças são encontrar um método para testar a conexão, e se for encontrado para ser somente leitura, crie novas conexões para o mesmo URL do servidor.

    
por slacker 26.08.2016 / 22:22

0 respostas