index | OSiUX | blog | docs | charlas
Percona Live 17 - MySQL Load Balancers - MaxScale, ProxySQL, HAProxy, MySQL Router & nginx - a close up look
Un excelente resumen de los pros y contras de cada herramienta "HA"
y en que casos combiene usar uno u otro.
HAProxy
keepalived
- diseñado para detectar fallas de nodos y moverse mediante una VIP (Virtual IP)
- una sola VIP para las conexiones no es posible balanceo
- puede ser util para contruir HA si te conectas a un solo nodo
- se puede usar con Galera Cluster para HA
- se instala keepalived en todos los nodos
- usando mysqlchk o percona clustercheck
nginx
- Si ya estás usando nginx como proxy reverso lo podes aprovechar
- Es similar a haproxy
- Se puede separar Lectura/Escritura usando 2 puertos
- No entiende los estados de MySQL/Galera
- Puede ser usado con clustercheck-iptables
MaxScale
- Automáticamente monitorea la salud de los nodos
- Entiende los estados de Mysql/Galera
- Puede separar Lectura/Escritura
- Soporta SSL
- Soporta Replicacion Mysql/Galera
- Posee integración con Nagios
- Maneja varios tipos de ruteo
- Dificultad para obtener estadísticas de tráfico en tiempo real
- Desde la version 2.0 no es GPL
- Hay un fork GPL de la versión 1.3 por AirBnB
- Tiene serios problemas de escabilidad con mas de 100 threads concurrentes
ProxySQL
- Diseñado para topologías complejas
- Implementa separación Lectura/Escritura
- Soporta multiples grupos de hosts
- Monitorea la salud de los backends
- Ruteo avanzado basado en reglas de queries
- Interfaz de Administración en SQL
- Configuración al estilo Cisco
- Casi todas las variables pueden ser cambiadas dinámicamente sin reiniciar el servicio
- Reconoce queries usando regex, hash, user, schema, ip, port
- Ruteo de queries basado en condiciones
- Permite reescribir queries
- Cache de queries
- Minimiza las conexiones a los backends utilizando multiplex connections
- Soporte Replicacion MySQL y y Replicacion de Grupo
- Soporta Galera Cluster utilizando scripts externos
- Estadísticas detalladas del tráfico manejado por ProxySQL