Ir al contenido principal

Load Balancing

Definición

El load balancing (balanceo de carga) distribuye las conexiones de agentes, el tráfico web y el procesamiento de llamadas entre múltiples servidores dentro de un clúster de VICIdial. Esto previene la sobrecarga de servidores, permite el escalado horizontal y mantiene la redundancia del sistema.

Capas de implementación

Capa web: el sistema usa proxies inversos (HAProxy, Nginx o balanceadores de carga en la nube) para distribuir las solicitudes HTTP de los agentes entre varios servidores web. Esto permite que miles de agentes accedan a la interfaz simultáneamente sin saturar un único servidor.

Capa de telefonía: el procesamiento de llamadas se distribuye entre varios servidores Asterisk. El proceso VICIDIAL_balance_active_calls.pl monitorea los niveles de carga y asigna agentes a los servidores de telefonía según la capacidad disponible. Las llamadas salientes se originan en servidores con recursos suficientes.

Capa de troncal SIP: las llamadas salientes se distribuyen entre varios carriers o grupos de troncales usando enrutamiento por prefijo de marcación y configuración de conmutación por falla entre carriers, evitando la saturación de troncales y proveyendo carriers de respaldo.

Importancia estratégica

El load balancing se vuelve crítico para despliegues que superan la capacidad de un solo servidor, típicamente más de 200-300 llamadas concurrentes o más de 500 agentes. Sin distribución, el tráfico se concentra en un servidor, creando tanto un riesgo de falla como un techo de desempeño.

Una implementación efectiva entrega escalabilidad y alta disponibilidad. Cuando fallan los servidores web, el balanceador redirige a los agentes hacia servidores funcionales. Cuando fallan los servidores de telefonía, las llamadas se enrutan a través de la infraestructura restante. La replicación de base de datos (Database Replication) resuelve el punto único de falla restante en la mayoría de las arquitecturas.

Conceptos relacionados