我希望能够在HAProxy中使用leastconn,同时在后端主机上仍有不同的权重。
上下文:我有~100个后端主机,大约有2000个前端主机访问这些主机。所有后端主机以相同的方式处理请求(没有更快的主机),但是一些后端主机可以处理更多请求(它们具有更多内核)。问题是我不能使用循环法,因为有时一些后端主机会遇到长连接,而循环中它会继续接收越来越多的前端连接,它永远无法从中恢复。在目前的情况下,我使用了leastconn,因此所有后端主机都处理相同数量的请求,但我没有优化它们的CPU使用率。
我想要实现的是能够仍然使用leastconn,但允许更多连接到某些主机。例如,如果我们只有2个主机:主机A有1个核心,主机B有2个核心。在任何时候,我都希望HAProxy根据以下内容决定选择哪个主机:
x = num_current_connections_A,y = 0.5 * num_current_connections_B。如果x <= y,则转到A,否则转到B.
我读过这篇文章说明了同样的问题,但没有答案真的解决了我的问题:http://haproxy.formilux.narkive.com/I6hSmq8H/balance-leastconn-does-not-honor-weight
谢谢