I am planning a system with client and server microservices and haproxy as a load balancer between them.
In my system I need to have stickiness on the HTTP request ‘path’ and I want to have an equal distribution of such stickiness to the servers in the backend.
For high availability I plan to have few haproxy instances configured as peers and synch-ed on the stick-table.
Is it possible with haproxy to have a stick-table and a balance algorithm as:
if there is a match in the stick-table – take it, otherwise, select the server with the lowest number of entries in the stick-table.
It is something similar to the ‘leastconn’ algorithm, just instead of referencing open connections it should reference the number of already assigned paths.