Haproxy重新加载问题
我们在Mesos集群上使用Haproxy,我们基于马拉松赛事(一天50-100次)为Haproxy进行动态重新加载。我们有近300个应用程序在Mesos上运行(Haproxy中有300个虚拟主机)。当我们进行动态重新加载时,Haproxy需要很长时间来重新加载Haproxy,我们观察到,对于50个应用程序,重新加载Haproxy需要30-40秒。我们为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提供了一个配置文件,当我们重新加载时,所有应用程序都会重新加载(前端),这会导致所有应用程序停机。是否有办法减少停机时间和对最终用户
通过此方法,如果用户在重新加载时请求,则请求将排队并在重新加载后提供服务 但是,如果我们一个接一个地进行多次重新加载,即使在重新加载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?你能在你重新加载它的时候提供一些日志吗?谢谢你提供解决方案,考虑把它标记为正确答案。你能分享一下你是如何诊断的吗?