6.1. Replicação com líder único
Um líder recebe as escritas e envia o log aos seguidores; síncrono garante cópia, assíncrono garante disponibilidade.
Resumo
- Replicar: manter cópias em várias máquinas para tolerar falhas, reduzir latência e escalar leituras.
- Líder único: só o líder aceita escritas; envia o log de replicação aos seguidores, que aplicam na mesma ordem.
- Síncrono: confirma após o seguidor gravar (durável, mas trava se ele cair). Assíncrono: rápido, pode perder escritas. Comum: semi-síncrono.
- Novo seguidor: snapshot + aplicar o log a partir da posição dele. Seguidor que cai: retoma do ponto onde parou.
- Failover: promover seguidor. Riscos: perder escritas, split brain, timeout mal ajustado. Log: WAL, lógico (linha) ou por comando.
Perguntas-chave
responda de cabeça, depois abraPor que não deixar toda replicação síncrona?
Qualquer seguidor lento ou fora do ar bloquearia todas as escritas; por isso costuma-se ter um seguidor síncrono e os demais assíncronos.
O que é split brain?
Dois nós acreditam ser líder ao mesmo tempo e aceitam escritas conflitantes, corrompendo os dados.
Por que replicação por comando SQL é arriscada?
Funções como NOW() ou RAND() e efeitos colaterais dão resultados diferentes em cada réplica; logs lógicos por linha evitam isso.
Exercícios de fixação
0/5 respondidas1.
O líder confirma a escrita ao cliente e cai antes de enviá-la ao seguidor assíncrono, que é promovido. O que acontece com a escrita?
2.
Como adicionar um seguidor novo sem parar o líder?
3.
Um timeout de failover muito curto tende a causar:
4.
A replicação envia
INSERT ... VALUES (NOW()) para os seguidores executarem. Qual o problema?5.
Configuração semi-síncrona significa: