Dmitry, thank you for the reply, but I would imagine that haproxy would close all sessions on the DOWN nodes, regardless of the type of client connecting and the protocol? Can this be enforced?
I did implement producer ack, but that slows down publishes big time. Have also tried heartbeat and that did help, but this is initiated by the client and I would like to see if haproxy can manage this. I.e. close all sessions on a node that is marked as DOWN. On 17/01/2014 8:09 pm, "Dmitriy Samsonov" <dmitriy.samso...@gmail.com> wrote: > Hi! > > That's related to rabbiit's default heartbeat timeout. You can set it to > lower value when connecting. Also there is a way to check if message was > actually delivered to the broker, take a look at rabbiit's docs. > > > пятница, 17 января 2014 г. пользователь Andrei Chevenkov написал: > >> Hi, >> >> I am pretty new to haproxy and trying to do ha setup for rabbitmq. >> >> Setup is pretyt simple: >> >> listen rabbitmq 192.168.69.106:5672 >> mode tcp >> balance leastconn >> option tcplog >> option tcpka >> server rabbit01 192.168.69.107:5672 check inter 1000 downinter 5000 >> fall 1 on-error mark-down >> server rabbit02 192.168.69.108:5672 check inter 1000 downinter 5000 >> fall 1 on-error mark-down backup >> >> Everything seems to work well, but I noticed one strange behaviour. If I >> gracefully shut down rabbit01, message producer (client) connected to >> 192.168.69.106:5672 notices broken connection pretty much straight away, >> attempts a reconnect, hits rabbit02 and all is well. >> >> However if I simply "turn off" rabbit01, message producer (client) >> notices broken connection only in around 30 seconds or so. And while the >> break is undetected it keeps pushing messages thinking there is still >> someone on another side. >> >> Now, from the statistic report I can see that as soon as I turn off the >> box, rabbit01 is marked as "DOWN", but its "Sessions Current" is still set >> to 1? In the logs this comes up pretty much immediately after the hard turn >> off: >> >> Jan 17 17:13:51 prodlb01 haproxy[38459]: Server rabbitmq/rabbit01 is >> DOWN, reason: Layer4 timeout, check duration: 1008ms. 0 active and 1 backup >> servers left. Running on backup. 1 sessions active, 0 requeued, 0 remaining >> in queue. >> >> After around 30 seconds, the connection is detected as broken and >> failover happens successfully. At that time "Sessions Current" is set to >> 0 fo rabbit01. >> >> Tried option nolinger and option abortonclose, but no luck. >> >> Any help would be much appreciated... >> >> Cheers, >> Andrei >> >