Hi Robinho,

On Tue, Mar 14, 2017 at 01:12:45AM +0000, Robson Roberto Souza Peixoto wrote:
> Hi!
> 
> I'm using HaProxy as a reverse proxy to my applications running on Marathon.
> 
> The Marathon-lb(https://github.com/mesosphere/marathon-lb) is the
> responsabel to create the configuration file and reload the HaProxy.
> 
> But there are a lot of thrift and another tcp services and because of that
> the backend is configured as layer 4. All clients of these services are
> using persistent connection and because of that we have a lot of process
> waiting for all connections close to finish the process after a reload.
> 
> But sometimes it take days or weeks to hapen a new deploy of the software
> and release the connection.
> 
> I'd like to know if is possible to force the connection close if the
> process if waiting the connection to die.

In fact in HTTP it's already the case. In TCP however there's no way to
know when to close because by definition we're just forwarding bytes
between two sides without any interpretation of the transported protocol.
If you want to close such connections upon reload, you have two possibilities :
  - shorten the timeouts (but how short is enough solely depends on your
    workload and what works today may not work tomorrow) ;

  - reload with -st instead of -sf : it will instruct the old process to
    terminate all connections and quit instead of letting them close first.

Given your description I think the latter is exactly what you're looking for.

Cheers,
Willy

Reply via email to