Got it, thank you. On 17/01/2014 9:01 pm, "Dmitriy Samsonov" <[email protected]> wrote:
> When you closing rabbit gracefully it sends 'DOWN' message to > connected clients and you notice your clients reconnecting. > I've tried in the past various ways to detect disconnects on HAProxy > side, including playing with various TCPKA settings but nothing > helped. (I was playing with 1.4) > > 2014/1/17 Andrei Chevenkov <[email protected]>: > > 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" <[email protected]> > > 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 >

