我有三个与同一主题相关的小问题:
- 使用 HAProxy,有没有办法根据电流负载不同的服务器(例如,将请求路由到负载最小的服务器)。
- 如果不是,为什么 HAProxy 没有内置这种行为?有没有主要的这样做对性能有什么影响?我设想,例如,
leastconn
我不会寻找最少的连接(算法),而是寻找最低的负载。 - 如果这样做不会对性能产生重大影响,那么我是否可以将此功能构建到自定义 HAProxy 分发中而不会影响性能的假设是否正确?
答案1
使用 haproxy 执行此操作的唯一方法是创建一个脚本,检查 haproxy 的健康情况。在脚本中,您将检查平均负载,如果负载有效,则返回响应代码 200。如果负载过高,则返回 404 或 500 错误。您的 haproxy 检查将类似于
option httpchk HEAD /health_check.php HTTP/1.0
如果 haproxy 看到任何 2xx/3xx 响应,它将有效。否则它将使该节点脱机,直到节点的负载下降并且 health_check.php 脚本返回 200