在Ubuntu 18.04/CentOS 7上使用HAProxy进行Galera集群高可用性
本文介绍在Ubuntu 18.04/CentOS 7操作系统上使用HAProxy进行Galera集群高可用性。拥有三个或更多Galera集群节点,如果不使用像HAProxy这样的负载均衡器,就很难实现真正的负载平衡,这也意味着你必须将应用程序配置为指向其中一个Galera节点,这会在你的基础架构中引入单点故障。通过设置HAproxy,你可以确保数据库服务始终可用,并通过Galera Cluster节点的中央控制来执行维护等操作,如果要删除其中一个节点,只需更改HAProxy的后端配置即可。
Galera集群高可用性与HAProxy
我们将首先确保在我们的Ubuntu 18.04系统上安装HAProxy软件包,更新系统包并安装HAProxy:
$ sudo apt-get update
$ suod apt-get upgrade
$ sudo apt-get install haproxy
确认已安装的HAProxy版本:
# apt policy haproxy
haproxy:
Installed: 1.8.8-1ubuntu0.1
Candidate: 1.8.8-1ubuntu0.1
Version table:
*** 1.8.8-1ubuntu0.1 500
配置HAProxy以加载平衡Galera集群
现在已经安装了HAProxy,请配置haproxy以在TCP层对Galera集群数据库服务器进行负载平衡。
使用Galera节点配置/etc/hosts文件:
# vim /etc/hosts
10.131.69.129 galera-haproxy-01
10.131.74.92 node-01 galera-db-01
10.131.35.167 node-02 galera-db-02
10.131.65.13 node-03 galera-db-03
HAProxy目标选择策略
HAProxy将根据配置的目标路由策略选择后端服务器以路由流量,这是HAProxy中可用的目标选择策略:
1、Round Robin将新连接指向循环订单列表中的下一个目的地,并根据服务器的权重进行修改,使用余额roundrobin启用它。
2、Static Round Robin将新连接指向循环订单列表中的下一个目标,并按服务器的权重进行修改,与循环的标准实现不同,在静态循环中,你无法动态修改服务器权重,更改服务器权重需要重新启动HAProxy,使用balance static-rr启用它。
3、最少连接使用可用的最小连接数指向服务器的新连接,并根据服务器的权重进行调整,使用余额最小化启用它。
4、First使用可用的连接插槽将新连接指向第一个服务器,它们从最低的数字标识符中选择到最高,一旦服务器达到其最大连接值,HAProxy将移动到列表中的下一个,首先启用with.balance。
5、源跟踪将源IP地址除以正在运行的服务器的总权重,确保来自同一源IP的客户端连接始终到达同一服务器,使用余额源启用它。
打开HAProxy主配置文件:
$ sudo vim /etc/haproxy/haproxy.cfg
你的配置应具有类似于以下的设置:
# Galera Cluster Frontend configuration
frontend galera_cluster_frontend
bind 10.131.69.129:3306
mode tcp
option tcplog
default_backend galera_cluster_backend
# Galera Cluster Backend configuration
backend galera_cluster_backend
mode tcp
option tcpka
balance leastconn
option mysql-check user haproxy
server db-server-01 galera-db-01:3306 check weight 1
server db-server-02 galera-db-02:3306 check weight 1
server db-server-03 galera-db-03:3306 check weight 1
以下是选项使用的说明:
balance - 这定义了用于选择要将传入连接路由到的服务器的目标选择策略。
mode tcp - Galera Cluster使用TCP类型的连接。
option tcpka - 启用keepalive功能以维护TCP连接。
option mysql-check user <username> - 定义后端数据库服务器检查,以确定该节点当前是否正常运行。
server <server-name> <IP_address> check weight 1 - 定义希望HAProxy在路由连接中使用的节点。
重启haproxy并测试连接:
$ sudo systemctl restart haproxy
通过HAProxy测试数据库访问
确认HAProxy在端口3306上有绑定:
# ss -tunelp | grep 3306
tcp LISTEN 0 128 10.131.69.129:3306 0.0.0.0:* users:(("haproxy",pid=24226,fd=5)) ino:87300 sk:2 <->
你可以在HAProxy服务器上安装MariaDB客户端以进行测试:
$ sudo apt-get install mariadb-client
尝试从HAProxy连接到端口3306:
root@haproxy-01:~# mysql -u test_user -p -h 10.131.69.129
TAG:
除非注明,文章均由 Linux系统学习 整理发布,欢迎转载。如有版权争议,请联系删除。
转载请注明本文地址:http://8u.hn.cn/shujuku/12895.html,网络整理资料,转载时请保留原出处。
留言与评论(共有 0 条评论) |
文章评论