¿Qué es un balanceador de carga?
También llamado: load balancer, balanceo de carga
Definición
Un balanceador de carga reparte las peticiones de los usuarios entre varios servidores para que ninguno se sature y para que, si uno falla, el resto siga atendiendo el tráfico.
En lugar de un solo servidor cada vez más grande, se ponen varios iguales detrás de un balanceador. Los usuarios se conectan siempre al balanceador, que elige a qué servidor enviar cada petición y deja de enviar tráfico a los que no responden.
Ejemplo
Nginx como balanceador entre tres servidores de aplicación:
upstream app {
least_conn;
server 10.0.0.11:3000;
server 10.0.0.12:3000;
server 10.0.0.13:3000 backup; # solo si fallan los otros
}
server {
listen 443 ssl;
server_name example.com;
location / {
proxy_pass http://app;
}
}
Algoritmos de reparto
| Algoritmo | Cómo reparte |
|---|---|
| Round robin | Por turnos, uno a cada servidor |
| Least connections | Al que tiene menos conexiones abiertas |
| IP hash | Siempre al mismo servidor para la misma IP |
| Por pesos | Más tráfico a los servidores más potentes |
Cosas que conviene saber
- Comprobaciones de salud (health checks): el balanceador consulta cada servidor periódicamente y retira los que fallan.
- Sesiones: si la aplicación guarda las sesiones en la memoria de cada servidor, el usuario «pierde» la sesión al cambiar de servidor. Guárdalas en un sitio compartido (Redis, la base de datos) en lugar de forzar siempre el mismo servidor.
- El propio balanceador no debe convertirse en el único punto de fallo: los proveedores cloud ofrecen balanceadores gestionados y redundantes.
¿Tienes un producto o servicio relacionado con Balanceador de carga? Anúnciate en este término.
Términos relacionados
- EscalabilidadLa escalabilidad es la capacidad de un sistema para atender más carga (más visitas,...
- Proxy inversoUn proxy inverso es un servidor que recibe las peticiones de los visitantes y...
- NginxNginx es un servidor web de alto rendimiento que también se usa como proxy...
- UptimeEl uptime es el porcentaje de tiempo que un servicio está funcionando. Un 99,9...
- KubernetesKubernetes es un sistema que gestiona contenedores en un grupo de servidores: decide dónde...