Hi,

You may want to try "on-marked-down shutdown-sessions".
I use it on long applications which require TCP connection established
for a long time.

Baptiste


On Fri, Jan 17, 2014 at 9:25 AM, Andrei Chevenkov <[email protected]> wrote:
> 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

Reply via email to