O Que É uma Réplica de Banco de Dados? Uma Cópia Que Divide a Carga
Uma réplica de banco de dados é uma cópia de um banco mantida em sincronia com um primário, usada para servir leituras e para fazer failover se o primário cair.
A maioria dos bancos de dados vê muito mais leituras do que escritas. Uma réplica copia os dados de um primário para que o tráfego de leitura possa ser espalhado por réplicas enquanto as escritas ainda vão para o primário. Réplicas também provêem um standby para failover. A pegadinha é o lag de replicação: uma réplica pode estar ligeiramente atrás do primário a qualquer momento.
Como a replicação funciona
As escritas vão para o primário, que transmite suas mudanças para uma ou mais réplicas que as aplicam. As leituras podem ser servidas de uma réplica para aliviar o primário. A réplica é somente leitura no que diz respeito às escritas da aplicação.
Por que times usam réplicas
- Escala de leitura: espalhar tráfego de leitura por réplicas.
- Alta disponibilidade: promover uma réplica se o primário falha.
- Localidade geográfica: colocar réplicas perto dos usuários.
- Isolar leituras analíticas pesadas do caminho de escrita.
Lag de replicação
Uma réplica costuma estar um instante atrás do primário. Leia sua própria escrita de uma réplica cedo demais e você pode ainda não vê-la. Isso é consistência eventual em forma concreta, e é uma fonte frequente de comportamento confuso e intermitente.
A cilada dos testes
Código que escreve no primário e então lê de uma réplica pode passar localmente (um banco de dados) e falhar em produção (leitura/escrita separadas). Testes que espelham a topologia real, ou que levam em conta o lag, pegam esses bugs antes que cheguem à produção.
Deploys e failover
A promoção de réplica muda qual nó é o primário. Aplicações precisam reconectar e lidar com uma breve janela de indisponibilidade. Pipelines que testam failover, não apenas o caminho feliz, são o que torna uma promoção rotineira em vez de um incidente.
Testes de integração conscientes da topologia
Reproduzir uma configuração de primário-mais-réplica no CI é mais pesado do que uma única instância. Runners aquecidos (como o Latchkey) mantêm essa topologia mais realista viável a cada execução.
Principais conclusões
- Uma réplica de banco de dados é uma cópia sincronizada usada para escala de leitura e failover.
- O lag de replicação significa que uma réplica pode estar brevemente atrás do primário.
- Ler sua própria escrita de uma réplica cedo demais é um bug intermitente clássico.