使用HAProxy进行负载均衡¶
本手册描述了如何配置HAProxy与Percona XtraDB Cluster一起工作。雷竞技下载官网
首先在节点您打算用于负载平衡的。支持Percona XtraDB Cluster的操作系统提供hapr雷竞技下载官网oxy包,您可以使用包管理器安装它。
Debian或Ubuntu
{“’”。Bash data-prompt="$"} $ sudo apt update $ sudo apt install haproxy
Red Hat或CentOS:
{“’”。Bash data-prompt="$"} $ sudo yum update $ sudo yum install haproxy ' ' '
HAProxy支持的版本
HAProxy支持的最低版本是1.4.20。
要启动HAProxy,请使用haproxy命令。您可以在命令行上传递任意数量的配置参数。要使用配置文件,请使用- f选择。
$#传递一个配置文件$sudohaproxy- fhaproxy - 1.美元- cfg#传递多个配置文件$sudohaproxy- fhaproxy - 1. - cfghaproxy - 2.美元- cfg#传递目录$sudohaproxy- fconf-dir
您可以传递现有配置文件或目录的名称。属性包含所有文件. cfg扩展名。传递多个文件的另一种方法是使用- f很多次了。
另请参阅
HAProxy文档:*管理HAProxy(包括可用选项)*关于如何配置HAProxy的更多信息
HAProxy配置文件示例
{“’”。Text .no-copy}全局日志127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 uid 99 gid 99 daemon #debug #quiet defaults log全局模式HTTP选项tcplog选项dontlognull retries 3 redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen mysql-cluster 0.0.0.0:3306 mode TCP balance roundrobin选项mysql-check user root server db01 10.4.29.100:3306 check server db02 10.4.29.99:3306 check server db03 10.4.29.98:3306 check
配置文件中设置的选项
| HAProxy选项(带有HAProxy文档的链接) | 描述 |
|---|---|
| 全球 | 配置文件中用于进程范围参数的部分 |
| 违约 | 配置文件中的一个节,用于以下所有其他节的默认参数 |
| 听 | 配置文件中的一节,它定义了一个完整的代理,并将其前端和后端部分组合在一个节中 |
| 平衡 | 后端使用的负载均衡算法 |
| clitimeout | 在客户端设置最大不活动时间 |
| contimeout | 设置等待连接尝试成功的最大时间。 |
| 守护进程 | 使进程fork进入后台(推荐的操作模式) |
| gid | 将进程的组ID更改为 |
| 日志 | 添加全局syslog服务器 |
| maxconn | 设置每个进程的最大并发连接数为 |
| 模式 | 设置实例的运行模式或协议 |
| 选择dontlognull | 禁用空连接日志记录 |
| 选择tcplog | 启用带有会话状态和计时器的TCP连接高级日志记录 |
| redispatch | 当连接失败时,启用或禁用会话重分发 |
| 重试 | 设置服务器连接失败后重试的次数 |
| 服务器 | 在后端声明一个服务器 |
| srvtimeout | 在服务器端设置最大不活动时间 |
| uid | 将进程的用户ID更改为 |
使用此配置,HAProxy将在三个节点之间平衡负载。在本例中,它只检查ifmysqld监听端口3306,但它不考虑节点的状态。它可以发送查询到有mysqld即使进了球也要跑加入或断开连接状态。
要检查节点的当前状态,我们需要一个更复杂的检查。这个想法是从代码团队谷歌组.
要实现这个设置,你需要两个脚本:
clustercheck(位于
/usr/local/bin)和配置xinetdmysqlchk(位于
/etc/xinetd.d)在每个节点上
这两个脚本都可以在Percona XtraDB Cluster的二进制文件和源发行版中获得。雷竞技下载官网
改变/文件,在每个节点上添加以下行:
Mysqlchk 9200/tcp # Mysqlchk
HAProxy配置文件示例
{“’”。文本.no-copy} #这个配置需要haproxy-1.4.20全球日志127.0.0.1 local0日志127.0.0.1 local1注意maxconn 4096 uid 99 gid 99 #守护进程调试#安静的默认日志全球模式http选项tcplog选项dontlognull重试3 redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000听mysql-cluster 0.0.0.0:3306模式tcp此平衡循环选项httpchk服务器db01 10.4.29.100:3306检查端口9200国际米兰12000升3降3服务器db02 10.4.29.99:3306检查端口9200国际米兰12000上升3下降3服务器db03 10.4.29.98:3306检查端口9200 inter 12000上升3下降3 ' ' '
重要的
在Pe雷竞技下载官网rcona XtraDB Cluster 8.0中,默认的认证插件为caching_sha2_password.HAProxy不支持此认证插件。创建一个mysql用户mysql_native_password身份验证插件。
mysql >创建用户“haproxy_user”@“%”确认与mysql_native_password通过“3 kr t美元”;