云网牛站
所在位置:首页 > Linux云数据库 > 在Ubuntu 18.04/CentOS 7上使用HAProxy进行Galera集群高可用性

在Ubuntu 18.04/CentOS 7上使用HAProxy进行Galera集群高可用性

2019-02-23 15:51:48作者:师道宽稿源:云网牛站

本文介绍在Ubuntu 18.04/CentOS 7操作系统上使用HAProxy进行Galera集群高可用性。拥有三个或更多Galera集群节点,如果不使用像HAProxy这样的负载均衡器,就很难实现真正的负载平衡,这也意味着你必须将应用程序配置为指向其中一个Galera节点,这会在你的基础架构中引入单点故障。通过设置HAproxy,你可以确保数据库服务始终可用,并通过Galera Cluster节点的中央控制来执行维护等操作,如果要删除其中一个节点,只需更改HAProxy的后端配置即可。

在Ubuntu 18.04/CentOS 7上使用HAProxy进行Galera集群高可用性

 

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

在Ubuntu 18.04/CentOS 7上使用HAProxy进行Galera集群高可用性

 

相关主题

CentOS 7:使用HAProxy实现Nginx负载均衡

精选文章
热门文章