Como o Aurora MySQL ou PostgreSQL distribui a workload entre os nós de leitor?

2 minuto de leitura
0

Quero saber como o Amazon Aurora para MySQL ou PostgreSQL distribui a workload entre os nós de leitor.

Resolução

Use o endpoint de leitor para se conectar aos nós de leitor em um cluster do Amazon Aurora.

Para verificar a distribuição de rotação das conexões, execute um comando shell. Para ver como o Aurora tenta balancear a carga de suas conexões com o endpoint de leitor, execute um comando similar ao exemplo a seguir:

while sleep 5; do dig xxx-cluster.cluster-ro-xxxxxx.us-east1.rds.amazonaws.com|grep CNAME; done

Cada vez que resolve o endpoint de leitor, você obtém um endereço IP de instância ao qual pode se conectar. Esse endereço IP é escolhido com base na distribuição de rotação.

A conexão de banco de dados com cada réplica de leitura pode não ser distribuída uniformemente nos seguintes cenários:

  • Um cliente armazena informações de DNS em cache. A distribuição desigual acontece quando o cliente usa as configurações de conexão em cache para se conectar à mesma réplica do Aurora. O armazenamento em cache de DNS pode ocorrer em qualquer lugar, incluindo na camada de rede, no sistema operacional ou no contêiner da aplicação.
  • Se a instância de banco de dados estiver falhando, o endpoint de leitor poderá redirecionar as conexões. O endpoint de leitor pode direcionar temporariamente as conexões para a instância de banco de dados primária do cluster de banco de dados. Esse redirecionamento acontece quando uma réplica do Aurora é promovida para a instância de banco de dados primária.
  • A réplica de leitura não está disponível ou falha em uma verificação de integridade.
  • A aplicação é escrita em Java e você não desativa nem ajusta o armazenamento em cache TTL. Quando você não desativa ou ajusta o armazenamento em cache TTL, as máquinas virtuais Java (JVMs) podem armazenar o DNS em cache indefinidamente. Para obter mais informações, consulte Configurar o TTL de JVM para pesquisas de nome de DNS.
  • Quando as conexões ocorrem ao mesmo tempo, elas são enviadas para o mesmo endpoint de leitor.

Ao gerenciar sua distribuição de workload, use endpoints personalizados para obter mais flexibilidade. Por exemplo, você pode usar endpoints personalizados se usar diferentes tamanhos de instância de banco de dados no cluster.

Informações relacionadas

Gerenciamento de conexões do Amazon Aurora

AWS OFICIAL
AWS OFICIALAtualizada há 3 meses