• 企业高并发的成熟解决方案(一)----搭建LVS负载均衡


    企业整个架构分析

    1. App服务器上边部署应用,如果是java的话,一般是tomcat;

    2. 负载均衡服务器负责转发请求,这种既有主机又有备机的负载均衡成为高可用(HA);

    3. 一般web服务器用tomcat,大公司追求稳定用weblogic;

    4. 高并发发生在两处:(1)、两台负载均衡机器会出现并发问题;(2)、数据库的并发问题;

    5. App服务器会出现的问题:

      

      (1)、session如何共享;如何解决,3种解决方案;

             a. 可以把用户的session放在cookie中(缺点:用户的session放在了浏览器中,不安全,下下策);

             b. 可以把用户的session放在数据库中(缺点:网站是一个成千上万用户的网站,如果把session放在数据库中,会造成数据库压力太大,从而使网站不能正常运转,);

             c. 可以把用户的session放在缓存服务器中(最好的解决方案,推荐两种缓存服务器:memcached/redis,memcached/redis必须是集群);

    6. 数据库并发三大要求:(1)、随着业务量的不断增大,数据库承载能力也要增大;(2)、要求数据安全,不能丢失;(3)、要求支持备份+容灾;

    7. hadoop集群的作用:

        

            a. 通过sqoop将关系型数据库的数据导出到hdfs中;

          Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数 据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

            b. 将hdfs中的数据经过MapReduce进行计算及处理;

            c. 将处理完的结果数据写回hdfs文件系统;

            d. 将结果数据导回关系型数据库中;

            e. 用jchart生成图表;

    4.分析完企业整体架构后,开始搭建负载均衡服务器,并演示效果

      4.1搭建LVS负载均衡,场景描述:

        开启四台Linux系统(Centos6.4)

        第一台:负载均衡主机

        第二台:负载均衡备机

        第三台:真实服务器(http服务器)

        第四台:真实服务器(http服务器)

      http服务器是Apache公司的服务器,在linux系统上自带的,可以直接使用,方便快捷

      4.2 准备开始搭建,搭建成功后,演示刚才说的那三个功能

        4.2.1验证功能:

        ①转发功能

        ②故障移除的功能

        ③恢复添加的功能

        ④负载均衡主机关了,负载均衡备机是否接管它的工作

        4.2.2 三种IP:

        负载均衡IP:所在服务器IP

        VIP:LVS这个软件的IP,正是我们要访问的IP

          192.168.200.201  访问IP

        真实服务器RIP(realIP)

        4.2.3 IP分配

        192.168.200.149: 负载均衡服务器

        192.168.200.150: 负载均衡服务器

        192.168.200.151: Http服务器

        192.168.200.152: Http服务器

     

      4.2.4  启动Http服务器

        启动Http服务器命令:

        service httpd start

        //不关闭防火墙访问不了

        查看防火墙的状态:

        service iptable status

        关闭防火墙:

        service iptables stop

        彻底关闭防火墙:

        chkconfig iptables off

        在浏览器中输入192.168.200.151,看服务器是不是启动成功。

        ((Http服务器应该不一样,转发的时候才能知道转发到哪里了

        cd /var/www/html/

        vim index.html

        输入内容: I am http 151,保存退出))//修改主页

        然后在两台真实服务器上添加接口,并设置虚拟IP在此接口

        在某一台真实服务器上:

          #cd  /etc/init.d/

          #touch  realserver

          #vim  realserver

        粘贴内容,保存退出

        chmod 755 realserver//赋予权限

        service realserver start//启动服务

      ifconfig查看,如果出现一个虚拟ip(lo:0   192.168.200.201),则说明启动成功

      4.2.5 搭建负载均衡主机

        安装keepalived软件

          Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web 服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人 工做的只是修复故障的web服务器。

        安装keepalived软件命令:

        rpm -ivh keepalived-版本号

        查看软件安装在哪里:

        rpm -ql   keepalived-版本号

        查找配置文件的位置,然后编辑配置文件:

        vim /etc/keepalived/keepalived.conf

        > /etc/keepalived/keepalived.conf  (>可以用于清除内容)

        vim /etc/keepalived/keepalived.conf,设置VIP和对应的真实服务器IP,

    keepalived配置文件: /etc/keepalived/keepalived.conf
    
    ! Configuration File for keepalived
    
    global_defs {
    
       notification_email {
    
    admin@jhonse.com #故障接受联系人
    
       }
    
       notification_email_from Alexandre.Cassen@firewall.loc #故障发送人
    
       smtp_server 192.168.200.1 #本机发送邮件
    
       smtp_connect_timeout 30 #BACKUP上修改为LVS_BACKUP
    
       router_id LVS_DEVEL
    
    }
    
    vrrp_instance VI_1 {
    
        state MASTER #BACKUP上修改为BACKUP
    
        interface eno16777736 #网卡接口名称
    
        virtual_router_id 51 #虚拟路由标识,主从相同
    
        priority 100 #BACKUP上修改为90
    
        advert_int 1
    
        authentication {
    
            auth_type PASS
    
            auth_pass 1111 #主从认证密码必须一致
    
        }
    
        virtual_ipaddress {  #Web虚拟IP(VIP)
    
            192.168.200.201
    
        }
    
    }
    
    virtual_server 192.168.200.201 80 {  #定义虚拟IP和端口
    
        delay_loop 6  #检查真实服务器时间,单位秒
    
        lb_algo wrr    #设置负载调度算法,rr为轮训
    
        lb_kind DR   #设置LVS负载均衡DR模式
    
        nat_mask 255.255.255.0
    
        persistence_timeout 50 #同一IP的连接60秒内被分配到同一台真实服务器
    
        protocol TCP  #使用TCP协议检查realserver状态
    
        real_server 192.168.200.151 80 {  #第一个web服务器
    
            weight 1  #节点权重值
    
            TCP_CHECK {  #健康检查方式
    
                connect_timeout 3  #连接超时
    
                nb_get_retry 3 #重试次数
    
                delay_before_retry 3 #重试间隔/S
    
            }
    
        }
    
    real_server 192.168.200.152  80 {  #第二个web服务器
    
            weight 1
    
            TCP_CHECK {
    
                connect_timeout 3
    
                nb_get_retry 3
    
                delay_before_retry 3
    
            }
    
        }
    
    }

        149防火墙也要记得关闭

        启动服务:

        service keepalived start

        tail -f  /var/message,查看日志信息

      4.2.6 验证三大功能

        搭建完成,在浏览器输入访问IP(VIP)查看

         VIP(访问IP)http://192.168.200.201 访问IP

        1)转发功能:151  152,发现可以在两台HTTP服务器之间切换

        2)故障移除: 把152机器手动关掉,再查看效果

        service  httpd stop,访问152出现没法连接的效果

        在访问VIP发现始终是访问的151机器,证明负载均衡有故障移除的功能

        3) 恢复添加

        把152机器再手动启动,再查看效果

        service httpd start,发现152重新启动了,再 访问VIP发现可以重新再两台ftp服务器之间切换了

        证明:负载均衡有恢复添加的功能

        4)负载均衡主机关了,备机是否接管它的工作

        搭建备机,150机器上搭建,和上面的步骤一样

        配置文件中将state  Master修改成state  BACKUP

        搭建备机成功

        关闭负载均衡主机149机器,查看150机器是否接管它的工作

        service keepalived stop

        证明负载均衡主机关闭了,备用机确实接管了他的工作

        负载均衡主机备机搭建成功,负载均衡的功能验证通过!

  • 相关阅读:
    ConcurrentHashMap的使用和原理
    记录下项目中常用到的JavaScript/JQuery代码一(大量实例)
    layer ui插件显示tips时,修改字体颜色
    flash上传文件,如何解决跨域问题
    ubuntu下的mv命令
    Semantic 3D
    shellnet运行train_val_seg.py
    Tensorflow的不足之处
    用pip命令把python包安装到指定目录
    ubuntu建立文件或者文件夹软链接
  • 原文地址:https://www.cnblogs.com/winner-0715/p/4931986.html
Copyright © 2020-2023  润新知