Hello,

I'm new to HAProxy and am trying to setup a TCP balancing of services using
'shared' least-connection balancing and was wondering if this was possible
with HAProxy.  We're partitioning our services across multiple servers and
want to use a 'dual-redundant' type approach to distributing load.  Each
service will be located on at least three servers.  This will allow us to
manage server failure and maintain a higher peak rate than a more
traditional mirrored redundancy arrangement.

Basically, my goal is as follows:

4 servers each house three services

server 1 : service a, b, c
server 2 : service b, c, d
server 3 : service a, c, d
server 4 : service a, b, d

service a is on port 9020
service b is on port 9021
service c is on port 9022
service d is on port 9023

If server 1 goes down, I want the load to be evenly distributed between the
other three servers across services.  E.g. I want the least connections
balancing counts to include all services, not just one particular service.
For example, if we are maintaining the following connection counts: 300 for
a, 600 for b, 900 for c and 300 for d, we would have the following up and
down states (example distribution, others are possible):

_Up State_
server 1 : a (100), b(150), c(275) = 525
server 2 : b(125), c(300), d(100) = 525
server 3 : a(100), c(325), d(100) = 525
server 4 : a(100), b(325), d (100) = 525


_Down State A_ (after stabilization period)
server 1: down
server 2: b(150), c(450), d(100) = 700
server 3: a(150), c(450), d(100) = 700
server 4: a(150), b(450), d(100) = 700

_Down State B_ (after stabilization period)
server 1: down
server 2: down
server 3: a(75), c(900), d(75) = 1050
server 4: a(225), b(600), d(225) = 1050


There is some complexity here that isn't warranted at 4 servers but the
redundancy model allows us to do a number of useful things. Also, while the
example has each service existing the same number of times, in reality the
number of copies of a service would vary depending on other factors (load,
response curve, etc).

Is this possible out of the box with just a configuration file?

thanks for any guidance,
Jacques

Reply via email to