我有一个单独的后端HAProxyconfiguration非常类似于这样的:
backend mybackend option httpchk get /ping http-check expect ! rstatus ^5 server mybackend-0 192.168.1.1:9041 weight 1
/ping端点始终返回200 。
我的问题:在单个服务器上进行健康检查有没有好处? 据我所知,健康检查只有当我们有多个后端服务器,你想负载平衡他们是有道理的。
任何在这方面的帮助将不胜感激。
谢谢
健康检查单个服务器以允许“断路器”场景是有意义的。 设想你的后端正在接受TCP连接,但是无法产生响应。 通过这个haproxy连接的客户端应用程序将不得不等待内置超时发生才能closures连接。 如果他们通常需要50ms的响应时间,并且现在必须等待3秒才能使请求超时过期,那么他们很可能会失败。
一个写得很好的客户端应用程序将检测到这种情况,并执行自己的电路中断,但根据我的经验,大多数应用程序不会。 将健康检查添加到HAProxy中可以让HAProxy代表他们的电路中断。
因此,后端无法生成响应并导致健康检查失败。 然后HAProxy立即响应任何传入的请求与一个格式良好的503,然后客户端应用程序可以处理,但它喜欢。
大部分时间的应用程序都是在假设后端快速回复成功或失败的情况下编写的。 通过HAProxy进行健康检查可以减轻应用程序无法处理无响应的一些情况。