EvolutionAPI multiinstancia
Cómo ejecutar múltiples números de WhatsApp en la misma instalación de EvolutionAPI: límites, aislamiento entre instancias y escalado horizontal.
EvolutionAPI admite múltiples instancias (números) en la misma instalación. Cada instancia es un número de WhatsApp vinculado, con sesión y webhooks aislados.
Cómo funciona
Cada instancia se identifica por un instanceName. Las rutas de la API quedan así:
POST /message/sendText/{instanceName}
GET /chat/whatsappNumbers/{instanceName}
GET /instance/connectionState/{instanceName}
La sesión de cada número se persiste en Postgres o Redis (configurable vía DATABASE_PROVIDER).
Crear una nueva instancia
curl -X POST https://sua-evolution.rollinhost.com.br/instance/create \
-H "apikey: SUA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"instanceName": "vendas",
"qrcode": true,
"integration": "WHATSAPP-BAILEYS",
"webhook": {
"url": "https://n8n.exemplo.com/webhook/vendas-in",
"events": ["MESSAGES_UPSERT"]
}
}'
La respuesta incluye el qrcode.base64 para vincular.
Límites prácticos
| Recurso | Por instancia | 5 instancias | 20 instancias |
|---|---|---|---|
| RAM | ~400 MB | ~2 GB | ~8 GB |
| CPU (idle) | ~2% | ~10% | ~40% |
| CPU (en pico) | ~30% | varía | requiere 8+ vCPU |
| Base de datos | ~50 MB/mes | ~250 MB | ~1 GB |
Escalado horizontal
Para >50 instancias, replica EvolutionAPI en múltiples servidores y usa un router por instanceName:
┌─ evo-1.rollinhost.com.br (instancias A-F)
NGINX/Traefik ──┼─ evo-2.rollinhost.com.br (instancias G-M)
└─ evo-3.rollinhost.com.br (instancias N-Z)
Postgres puede compartirse entre los nodos (cuidado con el pool de conexiones).
Bloqueos y buenas prácticas
- Mantén una proporción orgánica entre mensajes enviados y recibidos (evita solo disparar)
- Calienta los números nuevos: empieza con 50 msgs/día y duplica cada semana
- Usa un delay aleatorio entre mensajes (1-3s), no dispares en ráfaga
Próximos pasos
Última actualización: