Je viens de commencer à utiliser HAProxy et je suis en train de construire une application de chat en temps réel. Je me demande s'il est possible d'envoyer les clients vers un autre backend lorsque le backend actuel atteint son maxconn (j'utilise "balance source"). Parce que parfois, lorsque un backend atteint sa limite, toutes les connexions vers ce backend sont mises en attente et le navigateur continue de charger alors que les autres backends sont libres.
Réponses
Trop de publicités?
rizkyabdilah
Points
61
Essayez ceci, il utilisera un autre backend si la connexion actuelle sur le frontend est supérieure à 20, changez le numéro (ligne n°4) pour correspondre à vos besoins, j'ai aussi écrit mode tcp, vous pouvez le changer en http si vous avez besoin d'un équilibrage de charge http
frontend frontend_chat 127.0.0.1:8080
mode tcp
balance roundrobin
acl max_conn_reached fe_conn gt 20
default_backend be_chat1
use_backend be_chat1_and_chat2 if max_conn_reached
backend be_chat1
mode tcp
balance roundrobin
server chat1 127.0.0.1:9001 check maxconn 10
backend be_chat1_and_chat2
mode tcp
balance roundrobin
server chat1 127.0.0.1:9001 check maxconn 10
server chat2 127.0.0.1:9002 check maxconn 10