2 votes

Changer le backend lorsque maxconn HAProxy est atteint

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.

1voto

profy Points 1118

Je ne sais pas, mais essayez ceci dans la configuration backend (adaptez 10 avec votre maxconn) :

acl too_many be_sess_rate gt 10
use_backend b_too_many if too_many be_sess_rate

1voto

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X