这里使用HAProxy作为Mysql MGR集群的负载均衡。
解决依赖:
yum install gcc pcre-devel openssl-devel zlib-devel
下载HAProxy
2.7是当前最新的稳定版
https://www.haproxy.org/download/2.7/src/haproxy-2.7.9.tar.gz
解压并编译
tar xf haproxy-2.7.9.tar.gz
cd haproxy2.7.9
make TARGET=linux-glibc USE_OPENSSL=1 USE_ZLIB=1 USE_PCRE=1
make PREFIX=/opt/haproxy install
echo $?
编译参数:
TARGET=linux-glibc
:这个选项设置目标平台为Linux,并使用GNU C库(glibc)。linux-glibc选项指定要构建软件的特定环境。
USE_OPENSSL=1
:此选项启用使用OpenSSL库。OpenSSL是一个流行的开源库,广泛用于SSL/TLS加密和密码学功能。
USE_ZLIB=1
:此选项启用使用zlib库。zlib是一个压缩库,提供数据压缩和解压缩的函数,通常在许多应用程序和格式中使用。
USE_PCRE=1
:此选项启用使用PCRE库。PCRE(Perl Compatible Regular Expressions)是一个提供使用正则表达式进行模式匹配的函数集合,通常用于文本处理和搜索。
haproxy配置文件
# 配置文件目录
mkdir /opt/haproxy/conf
# 写入配置文件
cat >> /opt/haproxy/conf/haproxy.cfg << EOF
global
chroot /opt/haproxy
pidfile /opt/haproxy/haproxy.pid
daemon
defaults
mode tcp #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
retries 2 #两次连接失败就认为是服务器不可用,也可以通过后面设置
option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
maxconn 4096 #默认的最大连接数
timeout connect 5000ms #连接超时
timeout client 30000ms #客户端超时
timeout server 30000ms #服务器超时
#timeout check 2000 #=心跳检测超时
log 127.0.0.1 local0 err #[err warning info debug]
balance roundrobin # 采用轮询算法
################# 配置#################
listen mysql-mgr #这里是配置负载均衡,可以任意
bind 0.0.0.0:33069 #这里是监听的IP地址和端口,端口号可以在0-65535之间,要避免端口冲突
mode tcp #连接的协议,这里是tcp协议
#maxconn 4086
#log 127.0.0.1 local0 debug
server mgr1 10.211.55.122:3306
server mgr2 10.211.55.123:3306
server mgr3 10.211.55.124:3306
EOF
将服务加入systemd管理
cat >> /etc/systemd/system/haproxy.service << EOF
[Unit]
Description=HAProxy Load Balancer
After=network.target
[Service]
ExecStart=/opt/haproxy/sbin/haproxy -f /opt/haproxy/conf/haproxy.cfg
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGTERM $MAINPID
KillMode=mixed
Restart=always
Type=forking
[Install]
WantedBy=multi-user.target
EOF
启动并加入开机自启
systemctl start haproxy.service
systemctl enable haproxy.service
最新评论
# 这只是一个创建远程登录并授权的语句、仅作为记录 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Fit2cloud!' WITH GRANT OPTION;
当MGR集群初始化结束后,需要开启MGR集群自启动(需要有一台节点是自动开启引导) loose-group_replication_start_on_boot = ON #设置节点是否在启动时自动启动 MGR 集群 loose-group_replication_bootstrap_group = ON #设置节点是否作为初始引导节点启动集群
密码:blog.sirliu.com
本内容密码:blog.sirliu.com 最新整理的文章在这里喔:https://blog.sirliu.com/2018/11/shell_lian_xi_ti.html