4.10 负载均衡分布式

栏目: 后端 · 发布时间: 7年前

内容简介:}vrrp_instance VI_1 {state MASTER
  1. 软件环境
     CentOS7(4台)
     JDK1.8
     2台http服务器
     2台负载均衡:lvs+keepAlived
  2. http服务器安装配置(2台)
     输入 yum -y install httpd 安装http服务器
     输入 systemctl enable httpd.service 设为开机自启动
     输入 systemctl start httpd.service 启动http服务器
     输入 systemctl status httpd.service 查看http服务器状态
     进入 /var/www/html/ 目录,输入 vi index.html,随便写点内容,标识节点即可
     输入 vi /etc/init.d/realserver 配置真实服务器,加入以下内容
    #!/bin/bash
    #description : start realserver
    SNS_VIP=192.168.11.200
    /etc/rc.d/init.d/functions
    case “$1” in
    start)
    echo " start LVS of REALServer"
    /sbin/ifconfig lo:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 up
    echo “1” >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo “2” >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo “1” >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo “2” >/proc/sys/net/ipv4/conf/all/arp_announce
    ;;
    stop)
    /sbin/ifconfig lo:0 down
    echo “close LVS Directorserver”
    echo “0” >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo “0” >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo “0” >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo “0” >/proc/sys/net/ipv4/conf/all/arp_announce
    ;;
    *)
    echo “Usage: $0 {start|stop}”
    exit 1
    esac
    解释:
    #!/bin/bash
    #description : start realserver
    SNS_VIP=192.168.11.200 #定义VIP变量,注意在同一网段
    /etc/rc.d/init.d/functions #导脚本库
    case “$1” in #case语句 $1传递给该 shell 脚本的第一个参数
    start)
    echo " start LVS of REALServer"
    /sbin/ifconfig lo:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 up $SNS_VIP #增加本地路由 lo:0
    echo “1” >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo “2” >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo “1” >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo “2” >/proc/sys/net/ipv4/conf/all/arp_announce
    ;;
    stop)
    /sbin/ifconfig lo:0 down #删除本地路由
    echo “close LVS Directorserver”
    echo “0” >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo “0” >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo “0” >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo “0” >/proc/sys/net/ipv4/conf/all/arp_announce
    ;;
    *)
    echo “Usage: $0 {start|stop}”
    exit 1
    esac
     输入 chmod 777 /etc/init.d/realserver 赋予权限
     输入 service realserver start 启动服务
     输入 ifconfig 查看,多出一块网卡
  3. lvs+keepAlived安装配置
     输入 uname -a 查看 Linux 版本,如果为2.6以后,内核中已有lvs
     输入 yum -y install keepalived 安装keepAlived
     输入 rpm -ql keepalived 查看rpm包安装到的目录
     输入 > /etc/keepalived/keepalived.conf 创建并覆盖配置文件
     输入 vi /etc/keepalived/keepalived.conf 编辑配置文件,加入以下内容
    global_defs {

notification_email {

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state MASTER

interface eno16777736

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.11.200

}

}

virtual_server 192.168.11.200 80 {

delay_loop 6

lb_algo wrr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 0

protocol TCP

real_server 192.168.11.135 80 {

weight 1

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

real_server 192.168.11.138 80 {

weight 2

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

解释:

global_defs { #全局配置部分

notification_email { #下面几行均为全局通知配置,可以实现出现问题后报警,但功能有限,因此注释掉,并采用Nagios监视lvs运行情况

smtp_connect_timeout 30

router_id LVS_DEVEL    #设置lvs的id,在一个网络内应该是唯一的

}

vrrp_instance VI_1 { #设置vrrp组,唯一且同一LVS服务器组要相同

state MASTER #备份LVS服务器设置为BACKUP,这里是MASTER

interface eno16777736 #设置对外服务的接口

virtual_router_id 51 #设置虚拟路由标识

priority 100 #设置优先级,数值越大,优先级越高,backup设置为99,这样就能实现当master宕机后自动将backup变为master,而当原master恢复正常时,则现在的master再次变为backup。

advert_int 1 #设置同步时间间隔

authentication { #设置验证类型和密码,master和buckup一定要设置一样

auth_type PASS

auth_pass 1111 #主备机设置为一样,互相通话

}

virtual_ipaddress { #设置VIP,可以多个,每个占一行

192.168.11.200

}

}

virtual_server 192.168.11.200 80 { #tomcat等服务器也要为80端口

delay_loop 6 #健康检查时间间隔,单位s

lb_algo wrr #负载均衡调度算法设置为加权轮询

lb_kind DR #负载均衡转发规则,这是效率最高的规则

nat_mask 255.255.255.0 #网络掩码,DR模式要保障真实服务器和lvs在同一网段

persistence_timeout 0 #会话保持时间,单位s,这里设置保持时间,不能解决session共享问题,session按最后一次请求算

protocol TCP #协议

real_server 192.168.11.135 80 { #真实服务器配置,80表示端口

weight 1 #权重,和wrr加权轮询配对出现

TCP_CHECK { #服务器检测方式设置 keepalived的健康检查方式 有:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK

connect_timeout 10 #连接超时时间

nb_get_retry 3 #失败重试次数

delay_before_retry 3 #失败重试的间隔时间

connect_port 80 #连接的后端端口

}

}

real_server 192.168.11.138 80 {

weight 2

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

 输入 service keepalived start

 可以输入 tail -f /var/log/messages 查看日志

 还可以输入 service keepalived status 查看运行状态

4. lvs+keepAlived负载均衡测试

 转发

 故障移除

 故障恢复自动添加

5. lvs备机搭建

 输入 uname -a 查看Linux版本,如果为2.6以后,内核中已有lvs

 输入 yum -y install keepalived 安装keepAlived

 输入 rpm -ql keepalived 查看rpm包安装到的目录

 输入 > /etc/keepalived/keepalived.conf 创建并覆盖配置文件

 输入 vi /etc/keepalived/keepalived.conf 编辑配置文件,加入以下内容

global_defs {

notification_email {

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state BACKUP

interface eno16777736

virtual_router_id 51

priority 99

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.11.200

}

}

virtual_server 192.168.11.200 80 {

delay_loop 6

lb_algo wrr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 0

protocol TCP

real_server 192.168.11.135 80 {

weight 1

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

real_server 192.168.11.138 80 {

weight 2

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

解释:

global_defs { #全局配置部分

notification_email { #下面几行均为全局通知配置,可以实现出现问题后报警,但功能有限,因此注释掉,并采用Nagios监视lvs运行情况

smtp_connect_timeout 30

router_id LVS_DEVEL    #设置lvs的id,在一个网络内应该是唯一的

}

vrrp_instance VI_1 { #设置vrrp组,唯一且同一LVS服务器组要相同

state BACKUP #备份LVS服务器设置为BACKUP,这里是MASTER

interface eno16777736 #设置对外服务的接口

virtual_router_id 51 #设置虚拟路由标识

priority 99 #设置优先级,数值越大,优先级越高,backup设置为99,这样就能实现当master宕机后自动将backup变为master,而当原master恢复正常时,则现在的master再次变为backup。

advert_int 1 #设置同步时间间隔

authentication { #设置验证类型和密码,master和buckup一定要设置一样

auth_type PASS

auth_pass 1111 #主备机设置为一样,互相通话

}

virtual_ipaddress { #设置VIP,可以多个,每个占一行

192.168.11.200

}

}

virtual_server 192.168.11.200 80 { #tomcat等服务器也要为80端口

delay_loop 6 #健康检查时间间隔,单位s

lb_algo wrr #负载均衡调度算法设置为加权轮询

lb_kind DR #负载均衡转发规则,这是效率最高的规则

nat_mask 255.255.255.0 #网络掩码,DR模式要保障真实服务器和lvs在同一网段

persistence_timeout 0 #会话保持时间,单位s,这里设置保持时间,不能解决session共享问题,session按最后一次请求算

protocol TCP #协议

real_server 192.168.11.135 80 { #真实服务器配置,80表示端口

weight 1 #权重,和wrr加权轮询配对出现

TCP_CHECK { #服务器检测方式设置 keepalived的健康检查方式 有:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK

connect_timeout 10 #连接超时时间

nb_get_retry 3 #失败重试次数

delay_before_retry 3 #失败重试的间隔时间

connect_port 80 #连接的后端端口

}

}

real_server 192.168.11.138 80 {

weight 2

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

 输入 service keepalived start

 可以输入 tail -f /var/log/messages 查看日志

 还可以输入 service keepalived status 查看运行状态

6. lvs主备测试

 输入 tail -f /var/log/messages 查看备机日志

 主机中输入 service keepalived stop 模拟挂掉

 备机自动切换

 主机启动,主机自动上位

学院 Go 语言视频主页

https://edu.csdn.net/lecturer/1928

清华团队带你实战区块链开发

扫码获取海量视频及源码 QQ群:721929980

4.10 负载均衡分布式

以上所述就是小编给大家介绍的《4.10 负载均衡分布式》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Algorithms and Data Structures

Algorithms and Data Structures

Kurt Mehlhorn、Peter Sanders / Springer / 2008-08-06 / USD 49.95

Algorithms are at the heart of every nontrivial computer application, and algorithmics is a modern and active area of computer science. Every computer scientist and every professional programmer shoul......一起来看看 《Algorithms and Data Structures》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具