【发布时间】:2019-08-27 15:46:52
【问题描述】:
在双节点场景中,我希望 haproxy 在切换到下一个节点之前向每个节点分配两个请求。
我有一个消息应用程序,它发出一个请求以获取 messageID,然后发出下一个请求以发送消息。
如果我在两台后端服务器上使用标准循环算法,这将导致一台服务器仅获取 messageID 请求,而另一台服务器则负责所有消息发送。
这并不是真正的平衡,因为提供 messageID 对服务器来说是一件轻而易举的事情,并且处理可能高达数百 MB 的消息全部由另一个节点完成。
我查看了加权循环法,但如果对两台服务器都使用 2 的权重,如果似乎没有成功,因为权重似乎是相对于彼此计算的。
我很高兴有任何提示,如何在发送两个请求而不是一个请求后实现 haproxy 切换后端节点。
这是我目前的配置,它仍然会导致一个更清晰的一个这里一个那里循环模式:
### frontend XTA Entry TLS/CA
frontend GMM_XTA_Entry_TLS_CA
mode tcp
bind 10.200.0.20:8444
default_backend GMM_XTA_Entrypoint_TLS_CA
### backend XTA Entry TLS/CA
backend GMM_XTA_Entrypoint_TLS_CA
mode tcp
server GMMAPPLB1-XTA-CA 10.200.0.21:8444 check port 8444 inter 1s rise 2 fall 3 weight 2
server GMMAPPLB2-XTA-CA 10.200.0.22:8444 check port 8444 inter 1s rise 2 fall 3 weight 2
好吧,如前所述,我需要一个“这里两个请求,那里两个请求”循环模式,但它一直在做“一个这里,一个那里”。
很高兴任何提示,干杯, 阿伦德
【问题讨论】:
-
虽然这不是您要求的负载平衡算法,但您是否考虑过使用
balance random?这将随机化哪个服务器处理哪些请求,因此它应该避免您上面描述的问题。 (haproxy.com/blog/haproxy-1-9-has-arrived/…)
标签: haproxy