【问题标题】: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 
    

【讨论】:

    最近更新 更多