Este tópico responde às perguntas mais comuns sobre a separação de leitura e escrita.
Por que os novos pesos de leitura não entram em vigor após a modificação dos pesos da instância RDS primária e das instâncias RDS somente leitura?
Os novos pesos de leitura aplicam-se apenas a novas conexões. As conexões existentes mantêm a configuração anterior porque o sistema não as restabelece automaticamente.
Por que a carga nas instâncias RDS primária e somente leitura não corresponde aos pesos de leitura definidos?
Esse comportamento pode ocorrer nos seguintes cenários:
As requisições contêm transações. O sistema encaminha todas as requisições com transações para a instância RDS primária, inclusive aquelas destinadas apenas à leitura de dados.
A conexão com o banco de dados utiliza diretamente os endpoints da instância primária ou das instâncias somente leitura. Nesse caso, o roteamento ignora os pesos de leitura configurados. Use exclusivamente o endpoint de separação de leitura e escrita para garantir o balanceamento correto.
Por que a instância RDS primária recebe muitas requisições de leitura mesmo com peso de leitura igual a zero?
Essa situação pode ocorrer nas seguintes condições:
Todas as requisições que envolvem transações são direcionadas à instância RDS primária, incluindo operações de leitura dentro dessas transações.
Nenhuma instância somente leitura com peso diferente de zero está disponível, ou a latência delas ultrapassa o limiar definido. Quando isso ocorre, o sistema deixa de enviar requisições de leitura para essas instâncias.
Como a separação de leitura e escrita garante a leitura oportuna dos dados?
Para mais informações, consulte Como garantir a atualidade da leitura de dados em uma instância ApsaraDB RDS for MySQL com a separação de leitura e escrita ativada?.
Como configurar os pesos de leitura por meio de chamadas de API?
Para mais detalhes, consulte ModifyReadWriteSplittingConnection.
Qual tipo de rede devo escolher para o endpoint de separação de leitura e escrita?
Se a aplicação estiver na mesma VPC da instância RDS, utilize o endpoint interno para maior segurança e eficiência na comunicação. Caso a aplicação esteja em um ambiente local ou em uma rede diferente da instância RDS, use o endpoint público para estabelecer a conexão. Para saber como alternar entre os tipos de rede, consulte Alterar o tipo de rede do endereço de separação de leitura e escrita de uma instância ApsaraDB RDS MySQL.
Qual é a diferença entre o endpoint de separação de leitura e escrita e os endpoints interno e público da instância RDS primária?
Ao ativar a separação de leitura e escrita, o sistema gera um endpoint específico para essa funcionalidade. Ao adicionar esse endpoint à aplicação, todas as requisições passam por ele e são distribuídas entre as instâncias primária e somente leitura conforme o tipo de requisição e os pesos de leitura configurados.
Se a aplicação utilizar apenas o endpoint interno ou público da instância primária, todo o tráfego será direcionado exclusivamente a ela. Para aproveitar a separação de leitura e escrita, configure na aplicação os endpoints e os pesos de leitura tanto da instância primária quanto das instâncias somente leitura.
É possível alterar o endpoint de separação de leitura e escrita?
Não é possível modificar manualmente o endpoint de separação de leitura e escrita. Mesmo que você ative e desative o recurso várias vezes, o endpoint permanece o mesmo. Isso elimina a necessidade de atualizar as configurações na aplicação e reduz os custos de manutenção.
A criação de uma instância RDS somente leitura afeta a instância RDS primária?
Não. Durante a criação de uma instância somente leitura, o sistema replica os dados a partir de uma instância secundária, sem causar impacto na instância primária.
Ainda consigo me conectar a uma instância RDS somente leitura após definir seu peso de leitura como zero?
Sim. Mesmo com o peso de leitura definido como zero, a conexão direta via endpoint interno ou público da instância somente leitura continua funcionando. No entanto, o acesso por meio do endpoint de separação de leitura e escrita deixará de ser possível. Para mais informações, consulte Visualizar e alterar endpoints internos e públicos e números de porta de uma instância ApsaraDB RDS for MySQL. Esse recurso é útil para reservar uma instância somente leitura para processar cargas de trabalho específicas.
Se eu liberar todas as instâncias RDS somente leitura de uma instância primária MySQL com o proxy de banco de dados compartilhado ativado, o proxy compartilhado da instância primária será afetado?
Ao liberar a última instância somente leitura associada a uma instância primária MySQL com o proxy de banco de dados compartilhado ativo, o sistema remove o endpoint de separação de leitura e escrita fornecido por esse proxy. Consequentemente, qualquer aplicação conectada por meio desse endpoint perderá o acesso à instância RDS.