KeepAlived+Redis+Haproxy实现主从热备、负载均衡、秒级切换实战
- Redis+Keepalived+Haproxy 的集群架构,分别用六个端口,实现多路复用,最终实现主从热备、负载均衡、秒级切换。
一、部署Redis集群
1、环境
-
3台虚拟机模拟6个节点,一台机器2个节点,创建出3 master、3 salve 环境
-
redis1: 192.168.184.129
-
redis2: 192.168.184.130
-
redis3: 192.168.184.131
2、安装 redis 实例 (6节点)
1、修改集群主机名
[root@redis01-ha1-k01 ~]# hostnamectl --static set-hostname redis01-ha1-k01
[root@redis02-ha2-k02 ~]# hostnamectl --static set-hostname redis02-ha2-k02
[root@redis03 ~]# hostnamectl --static set-hostname redis03
2、hosts文件配置
[root@redis01-ha1-k01 ~]# cat >> /etc/hosts <<-EOF
192.168.184.129 redis01-ha1-k01
192.168.184.130 redis02-ha2-k02
192.168.184.131 redis03-k02
EOF
3、修改系统参数(所有节点)
[root@redis01-ha1-k01 ~]#cat >> /etc/security/limits.conf << EOF
* soft nofile 102400
* hard nofile 102400
EOF
TCP监听队列大小
[root@redis01-ha1-k01 ~]#echo "net.core.somaxconn = 32767" >> /etc/sysctl.conf
#Redis配置项tcp-backlog的值不能超过somaxconn的大小
[root@redis01-ha1-k01 ~]#sysctl -w net.core.somaxconn=32767
[root@redis01-ha1-k01 ~]#echo "vm.overcommit_memory=1" >> /etc/sysctl.conf #OOM相关:vm.overcommit_memory
[root@redis01-ha1-k01 ~]#sysctl -p
开启内核的“Transparent Huge Pages (THP)”特性为了永久生效,将加入到文件/etc/rc.local中。
[root@redis01-ha1-k01 ~]#echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
[root@redis01-ha1-k01 ~]#chmod +x /etc/rc.local
安装 redis 并配置 redis-cluster
安装依赖源并升级
[root@redis01-ha1-k01 ~]#yum -y install gcc glibc glibc-kernheaders glibc-common glibc-devel make
[root@redis01-ha1-k01 ~]#yum -y install centos-release-scl
[root@redis01-ha1-k01 ~]#yum -y install devtoolset-9-gcc