Haproxy重新加载问题

Haproxy重新加载问题,haproxy,mesos,mesosphere,marathon,Haproxy,Mesos,Mesosphere,Marathon,我们在Mesos集群上使用Haproxy,我们基于马拉松赛事(一天50-100次)为Haproxy进行动态重新加载。我们有近300个应用程序在Mesos上运行(Haproxy中有300个虚拟主机)。当我们进行动态重新加载时,Haproxy需要很长时间来重新加载Haproxy,我们观察到,对于50个应用程序,重新加载Haproxy需要30-40秒。我们为Haproxy提供了一个配置文件,当我们重新加载时,所有应用程序都会重新加载(前端),这会导致所有应用程序停机。是否有办法减少停机时间和对最终用户

我们在Mesos集群上使用Haproxy,我们基于马拉松赛事(一天50-100次)为Haproxy进行动态重新加载。我们有近300个应用程序在Mesos上运行(Haproxy中有300个虚拟主机)。当我们进行动态重新加载时,Haproxy需要很长时间来重新加载Haproxy,我们观察到,对于50个应用程序,重新加载Haproxy需要30-40秒。我们为Haproxy提供了一个配置文件,当我们重新加载时,所有应用程序都会重新加载(前端),这会导致所有应用程序停机。是否有办法减少停机时间和对最终用户的影响

我们尝试了这个场景,

通过此方法,如果用户在重新加载时请求,则请求将排队并在重新加载后提供服务

但是,如果我们一个接一个地进行多次重新加载,即使在重新加载HaProxy服务之后,HaProxy的旧进程仍然存在,这将导致严重的问题

root      7816  0.1  0.0  20024  3028 ?        Ss   03:52   0:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -D -sf 6778
root      7817  0.0  0.0  20024  3148 ?        Ss   03:52   0:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -D -sf 6778
是否有任何解决方案在服务请求后立即停止前一个进程。

我们是否可以像Nginx一样,根据前端将配置分开,这样只有那些应用在后端发生任何变化时才会生效。


谢谢。

我们发现了问题,这是因为DNS,Haproxy花了很多时间来解析URL,我们为本地缓存DNS添加了/etc/hosts文件

现在重新加载需要30毫秒


谢谢。

30-40秒重新加载Haproxy听起来出乎意料。你能提供更多关于你的设置的细节吗?您是使用marathon haproxy bridge还是其他系统来管理和重新加载haproxy?你能在你重新加载它的时候提供一些日志吗?谢谢你提供解决方案,考虑把它标记为正确答案。你能分享一下你是如何诊断的吗?