I am interested in using haproxy for load-balancing with sticky session support, but using stick tables directly to benefit from upcoming master/master stick table replication in haproxy 1.5.
As a simple example, let's assume I have one load balancer LB1, and two backends A and B. LB1 can load balance between A and B (same IP, different ports in this test config), but it should stick all requests from one session to the same backend. Session are defined as a uri parameter, e.g. http://example.com/foo?JSESSIONID=session_id.
Something as follows works perfectly:
listen m1 192.168.122.2:80
mode http
balance roundrobin
appsession JSESSIONID len 64 timeout 1h request-learn mode query-string
server webA 192.168.3.68:8088 cookie A check
server webB 192.168.3.68:8089 cookie B check
but I would like to get the same behavior using the lower level stick table(s) so that multiple load balancers can synchronize each other.