On 2016/12/24 10:42, Alex.Chen wrote: > for my scenario, i need to using "balance source" to keep the > persistence of haproxy's balancing, I find that when one of my backend > server (s1) has been killed, and if the next round health check is > still not launched, then s1 is still be marked as UP. after 3 retries, > the redispatch option does not work, I still get a 503 error. after a > while, health check launched and s1 has been marked as DOWN, then my > req has been forward to another backend server and everything is ok now. > > my quesition is that, is there any config can help me to avoid 503 > error when 3 retries have been failed but s1 is still marked as UP > before the next round health check > > I debug haproxy(1.6.10) and find that when I using "balance source", > the redispatch option does not work actually. after 3 retries, > redispatch does not work, I guess that is because "balance source" is > deterministic based on source IP and server state info(UP/DOWN and > weight) (from > : > http://blog.haproxy.com/2013/04/22/client-ip-persistence-or-source-ip-hash-load-balancing/ > ) so if the server looks like "UP" then the balance source will still > assign redispatch new conn to this deaded server s1. > > I would think the "observe" option should handle this issue. https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#5.2-observe
-Patrick

