Os scripts de automação estão localizados em src/scripts/ e são executados via ts-node.
Este é o script principal de demonstração de resiliência.
- Conexão Direta: Conecta-se individualmente a cada nó do MongoDB (
localhost:27017,27018,27019) para verificar o status real (Primary/Secondary) e a contagem de documentos. - Detecção Dinâmica: Não assume que
mongo1é o Primary. Ele pergunta ao cluster quem é o Primary atual antes de derrubá-lo. - Fluxo Determinístico:
- Fase Saudável: 2 POSTs + 1 GET.
- Caos: Stop Primary.
- Fase Failover: 2 POSTs + 1 GET.
- Recuperação: Start Node.
- Fase Final: 2 POSTs + 1 GET.
No package.json, mapeamos este script para:
"scripts": {
"ops:demo": "ts-node src/scripts/demo_failover.ts"
}Você pode ajustar as constantes no topo do arquivo para mudar o comportamento:
const API_URL = 'http://localhost:3000/api/users';
// Adicione mais nós aqui se escalar o cluster
const NODES = [ ... ];