KeepAlived+Redis+Haproxy

实现主从热备、负载均衡、秒级切换实战

  • Redis+Keepalived+Haproxy 的集群架构,分别用六个端口,实现多路复用,最终实现主从热备、负载均衡、秒级切换。

一、部署Redis集群

1、环境

  • 3台虚拟机模拟6个节点,一台机器2个节点,创建出3 master、3 salve 环境

    192.168.122.232 redis1
    192.168.122.85 redis2
    192.168.122.56 redis3

2、安装 redis 实例 (6节点)

#!/bin/bash
cd /usr/local
wget http://download.redis.io/releases/redis-6.0.5.tar.gz
tar -xvf redis-6.0.5.tar.gz >& /dev/null
if [ $? -eq 0 ];then
  echo "tar ok"
else
  exit
fi
cd redis-6.0.5/
make && make install PREFIX=/usr/local/redis-cluster >& /dev/null
if [ $? -eq 0 ];then
  echo "make ok"
else
  exit
fi
#mkdir dir
mkdir -p /redis/{6001,6002}/{conf,data,log}
echo "配置redis1 6001 配置文件"
cd /redis/6001/conf/
cat >> redis.conf << EOF
bind 0.0.0.0
protected-mode no
port 6001
dir /redis/6001/data
cluster-enabled yes
cluster-config-file /redis/6001/conf/nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
pidfile /redis/6001/redis.pid
logfile /redis/6001/log/redis.log
EOF
if [ $? -eq 0 ];then
  echo "配置6002"
  sed 's/6001/6002/g' redis.conf > /redis/6002/conf/redis.conf
else
  exit
fi
#启动脚本
echo “启动脚本”
cat >/usr/local/redis-cluster/start-redis-cluster.sh<<-EOF
#!/bin/bash
REDIS_HOME=/usr/local/redis-cluster
REDIS_CONF=/redis
\$REDIS_HOME/bin/redis-server \$REDIS_CONF/6001/conf/redis.conf
\$REDIS_HOME/bin/redis-server \$REDIS_CONF/6002/conf/redis.conf
EOF
chmod +x /usr/local/redis-cluster/start-redis-cluster.sh
bash /usr/local/redis-cluster/start-redis-cluster.sh

3、检查 redis 启动情况

在这里插入图片描述

4、创建集群

#!/bin/bash
cd /usr/local/redis-cluster/bin
./redis-cli --cluster create 192.168.122.232:6001 192.168.122.232:6002 192.168.122.85:6001 192.168.122.85:6002 192.168.122.56:6001 192.168.122.56:6002 --cluster-replicas 1
ps -ef|grep redis
ln -s /usr/local/redis-cluster/bin/redis-cli /bin/redis-cli

5、集群验证

在这里插入图片描述

二、部署Keepalived,实现主从热备、秒级切换

1、环境

  • 两台虚拟机或者选择集群中的任意两个节点配置

  • keepalived1:192.168.122.38

  • keepalived2:192.168.122.145

  • VIP地址:192.168.122.100

2、安装keepalived

   ```shell

yum install -y keepalived
```

3、修改配置文件

1、keepalived1 配置

在这里插入图片描述

2、keepalived2 配置

在这里插入图片描述

3、健康检测脚本 haproxy_chk.sh(chmod +x)
cat /etc/keepalived/check_haproxy.sh                                                                                                    
#!/bin/bash
systemctl status haproxy | grep running
if [ $? -ne 0 ];then
 systemctl stop keepalived
fi
4、开启服务验证是VIP(关掉第一个haproxy的keepalived之后,vip可以飘到haproxy2)

在这里插入图片描述

三、部署haproxy,实现访问6379端口时,轮询访问六个节点

1、安装 haproxy

yum -y install haproxy

2、创建 haproxy.conf

global
    log                     127.0.0.1 local0
    chroot                  /var/lib/haproxy
    pidfile                 /var/run/haproxy.pid
    maxconn                 4000
    user                    nobody
    group                   nobody
    daemon

defaults
    mode                     http
    log                      global
    option                   dontlognull
    retries                  3
    maxconn                  3000
    contimeout               50000
    clitimeout               50000
    srvtimeout               50000

listen stats
    bind                    *:8888
    stats                   enable
    stats                   hide-version
    stats uri               /haproxy
    stats realm             Haproxy\ stats
    stats auth              admin:admin
    stats admin             if TRUE
    
listen  redis
        bind *:6379
        mode tcp
        balance roundrobin
        server redis1 192.168.122.232:6001 check
        server redis2 192.168.122.232:6002 check
        server redis3 192.168.122.85:6001 check
        server redis4 192.168.122.85:6002 check
        server redis5 192.168.122.56:6001 check
        server redis6 192.168.122.56:6002 check

3、Haproxy rsyslog 日志配置

vim /etc/rsyslog.conf 

在这里插入图片描述
在这里插入图片描述

4、haproxy 监控页面访问验证

  • 端口8888 账号密码 admin:admin
  • 有以下效果

在这里插入图片描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u40vuzjE-1600507089313)(/home/achun/图片/2020-09-18 21-00-18屏幕截图.png)]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值