Java教程

高并发系列---【keepalived+lvs实现双主热备】

本文主要是介绍高并发系列---【keepalived+lvs实现双主热备】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.搭建双主热备的前提是先学会双机主备,具体可参考https://www.cnblogs.com/hujunwei/p/15766986.html。

2.修改lvs-master的keepalived.conf,注意修改紫色部分。

! Configuration File for keepalived

global_defs {
   router_id LVS_1
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 126
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.26.101
    }
}

#LVS的相关配置
virtual_server 192.168.26.101 80 {
    #健康检查时间,单位:s
    delay_loop 6

    #负载均衡算法,默认轮询rr
    lb_algo rr

    #LVS的工作模式  NAT|TUN|DR
    lb_kind DR
    #会话持久化时间
    persistence_timeout 0
    protocol TCP

    #负载均衡的真实服务器
    real_server 192.168.26.102 80 {
        weight 1

        #设置健康检查
        TCP_CHECK {
            #检查的端口,对应真实服务器的服务端口
            connect_port 80
            #超时时间3s
            connect_timeout 3
            #重试次数 3次
            nb_get_retry 3
            #间隔时间3s
            delay_before_retry 3
        }
   }
}


vrrp_instance VI_2 {
    state BACKUP
    interface ens33
    virtual_router_id 128
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.26.104
    }
}
#LVS的相关配置
virtual_server 192.168.26.104 80 {
    #健康检查时间,单位:s
    delay_loop 6

    #负载均衡算法,默认轮询rr
    lb_algo rr

    #LVS的工作模式  NAT|TUN|DR
    lb_kind DR
    #会话持久化时间
    persistence_timeout 0
    protocol TCP

    #负载均衡的真实服务器
    real_server 192.168.26.103 80 {
        weight 1

        #设置健康检查
        TCP_CHECK {
            #检查的端口,对应真实服务器的服务端口
            connect_port 80
            #超时时间3s
            connect_timeout 3
            #重试次数 3次
            nb_get_retry 3
            #间隔时间3s
            delay_before_retry 3
        }
   }
}

3.重启keepalived

systemctl restart keepalived

4.修改lvs-backup的keepalived.conf,注意修改紫色部分。

! Configuration File for keepalived

global_defs {
   router_id LVS_2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 126
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.26.101
    }
}

#LVS的相关配置
virtual_server 192.168.26.101 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    protocol TCP
    real_server 192.168.26.102 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

vrrp_instance VI_2 {
    state MASTER
    interface ens33
    virtual_router_id 128
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.26.104
    }
}

#LVS的相关配置
virtual_server 192.168.26.104 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    protocol TCP
    real_server 192.168.26.103 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

5.重启keepalived

systemctl restart keepalived

6.使用"ip addr"查看ip的时候,ens33网卡上只有一个vip,如果有两个,检查另一个lvs的keepalived是否启动,如果已启动,仍然是两个,检查防火墙是否开着。

7.记得在所有RS服务器,一般为nginx服务器,执行以下命令,ip地址设成lvs的另一个vip。

cd /etc/sysconfig/network-script
cp ifcfg-lo:1 ifcfg-lo:2
vi ifcfg-lo:2

#修改名称和ip
DEVICE=lo:2
IPADDR=192.168.26.104
NETMASK=255.255.255.255
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback


#重启网络
service network restart

 

这篇关于高并发系列---【keepalived+lvs实现双主热备】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!