【问题标题】:Is there any HAProxy load balancing algorithm that routes connections to only one server?是否有任何 HAProxy 负载平衡算法仅将连接路由到一台服务器?
【发布时间】:2023-09-11 18:12:01
【问题描述】:
我在它们前面有三台服务器(MariaDB 服务)和一台 HAProxy 服务器,HAProxy 使用循环分配与这些服务器的连接。但我希望 HAProxy 服务器必须将所有连接路由到 server1。如果 server1 不可达,它必须路由到 server2.. 是否有任何负载平衡算法使它成为可能?
【问题讨论】:
标签:
ubuntu
mariadb
load-balancing
haproxy
【解决方案1】:
您可能正在寻找故障转移/备份配置,请在此处查看更多详细信息 (https://www.haproxy.com/blog/failover-and-worst-case-management-with-haproxy/),这是一个基本示例:
backend mysql
mode tcp
balance leastconn
server s1 10.0.0.1:3306 check
server s2 10.0.0.2:3306 check backup
server s3 10.0.0.3:3306 check backup
来自HAProxy docs:
备份
当“备份”出现在服务器线路上时,服务器仅
当所有其他非备份服务器都在时用于负载平衡
不可用。带有持久性 cookie 的请求
服务器将始终提供服务。默认情况下,只有第一个
使用操作备份服务器,除非“allbackups”选项是
在后台设置。另请参阅“no-backup”和“allbackups”选项。
如果您的服务器属于 galera 集群,您可以尝试httpwsrep:
backend mysql
mode tcp
option httpchk
default-server check port 9200
server s1 10.0.0.1:3306
server s2 10.0.0.2:3306
server s3 10.0.0.3:3306