A separação de leitura e gravação é um recurso de proxy de banco de dados que direciona automaticamente as solicitações de gravação para a instância RDS primária e as solicitações de leitura para as instâncias RDS somente leitura. Conecte-se a um único endpoint de proxy de banco de dados: o proxy gerencia o roteamento de forma transparente, para que o código da sua aplicação permaneça inalterado.
O diagrama acima mostra como um único endpoint de proxy de banco de dados aceita todas as solicitações recebidas e as encaminha: as operações de gravação são enviadas para a instância RDS primária, enquanto as operações de leitura são distribuídas entre as instâncias RDS somente leitura.
Para obter mais informações sobre proxies de banco de dados, consulte O que são proxies de banco de dados?
Quando usar a separação de leitura e gravação
A separação de leitura e gravação é ideal para cargas de trabalho com alto volume de leituras e baixo volume de gravações. Se a sua instância RDS primária estiver sobrecarregada por solicitações de leitura, a separação de leitura e gravação permite dimensionar a capacidade de leitura ao adicionar instâncias RDS somente leitura, sem alterar a configuração da sua aplicação.
Benefícios
Gerenciamento simplificado de conexões
Sem a separação de leitura e gravação, é necessário adicionar os endpoints da instância RDS primária e de cada instância RDS somente leitura à sua aplicação. Adicionar uma nova instância somente leitura exige uma alteração na configuração da aplicação.
Com a separação de leitura e gravação, sua aplicação se conecta a um único endpoint de proxy de banco de dados. O proxy encaminha as solicitações automaticamente. Adicionar ou remover instâncias RDS somente leitura não exige alterações na sua aplicação.
Integração nativa para reduzir a latência
A separação de leitura e gravação é integrada diretamente ao ecossistema do ApsaraDB RDS. As solicitações chegam ao banco de dados sem passar por camadas adicionais de análise e encaminhamento, o que reduz a latência de resposta e diminui a sobrecarga de manutenção.
Verificações automáticas de integridade
A separação de leitura e gravação monitora continuamente a integridade da instância RDS primária e de todas as instâncias RDS somente leitura. Se uma instância somente leitura falhar ou se a latência de replicação de dados exceder o limiar configurado, o proxy deixa de encaminhar leituras para essa instância e as redireciona para instâncias íntegras. Quando a instância se recupera, o proxy retoma o envio de leituras para ela automaticamente.
Crie pelo menos duas instâncias RDS somente leitura para evitar um único ponto de falha (SPOF) no caminho de leitura.
Pesos e limiares de roteamento configuráveis
Atribua pesos de leitura à instância RDS primária e a cada instância RDS somente leitura para controlar como as leituras são distribuídas. Defina um limiar de latência de replicação para determinar quando uma instância somente leitura é considerada muito defasada para atender a solicitações de leitura.
Como as solicitações são encaminhadas
As instâncias RDS somente leitura atendem apenas a leituras e não aceitam gravações:
|
Tipo de operação |
Instância RDS primária |
Instâncias RDS somente leitura |
|
Gravações (INSERT, ATUALIZE, EXCLUA, SELECIONE FOR ATUALIZE) |
Sim |
Não |
|
Leituras (SELECIONE) |
Sim |
Sim |
A tabela abaixo mostra o comportamento completo de encaminhamento para todos os tipos de solicitação.
|
Destino |
Tipos de solicitação |
|
Apenas instância RDS primária |
Instruções INSERT, ATUALIZE, EXCLUA e SELECIONE FOR ATUALIZE; operações DDL (criar ou excluir bancos de dados e tabelas, alterar esquemas ou permissões); solicitações em transações; chamadas de funções definidas pelo usuário; chamadas de procedimentos armazenados; múltiplas instruções; solicitações que envolvem tabelas temporárias; solicitações de leitura e gravação para tabelas do sistema; operações de gravação em instruções preparadas |
|
Instância RDS primária ou instâncias RDS somente leitura |
Instruções SELECIONE fora de transações; solicitações antes da primeira gravação em uma transação quando a separação de transações está ativada; operações de leitura em instruções preparadas; funções do sistema seguras para execução em instâncias somente leitura (por exemplo, |
|
Instância RDS primária e instâncias RDS somente leitura |
Solicitações de reconfiguração de variáveis do sistema; operações de análise em instruções preparadas; BEGIN, START, END, ROLLBACK e COMMIT; CANCLE |
Após a execução de múltiplas instruções ou a chamada de procedimentos armazenados, todas as solicitações subsequentes na conexão atual são encaminhadas para a instância RDS primária. Para retomar a separação de leitura e gravação, feche a conexão atual e abra uma nova.