tomcat + keepalived 实现主备高可用

tomacat7+ keepalived 高可用集群配置

服务器环境规划
    node1: 10.10.3.16   app01
    node2: 10.10.3.17    app02
    vip:
软件环境规划
    操作系统:oracle linux6.8  4.1.12-37.4.1.el6uek.x86_64
    keepalived:keepalived-1.3.5
    Java:jdk-1.7.0_80
    Tomcat:apache-tomcat-7.0.81
    
配置要求:
    tomcat主从,只有一台机器提供服务,另一台standby

安装keepalived(两台机器都需要安装)

1、准备:
    yum install openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel
    wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz
    
2、安装
    tar zxf keepalived-1.3.5.tar.gz
    cd keepalived-1.3.5
    ./configure --prefix=/usr/local/keepalived --with-init=SYSV  --不指定的话,默认不生成RECL6的启动脚本
     make && make install
    
3、准备脚本配置文件:
    [[email protected] keepalived-1.3.5]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
    [[email protected] keepalived-1.3.5]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
    [[email protected] keepalived-1.3.5]# cp -p /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
    [[email protected] keepalived-1.3.5]# mkdir /etc/keepalived
    [[email protected] keepalived-1.3.5]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
    [[email protected] local]# chkconfig --add keepalived
    [[email protected] local]# chkconfig --list keepalived
    [[email protected] local]# chkconfig  keepalived on
    [[email protected] local]# chmod +x /etc/init.d/keepalived
****以上部分,在两台机器上的操作完全相同

4、调整keepalived配置文件
    node1
    [[email protected] local]# vim /etc/keepalived/keepalived.conf
    global_defs {
    notification_email {
        [email protected]
    }
    notification_email_from [email protected]
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
    vrrp_skip_check_adv_addr
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    }
    
    vrrp_script chk_http_port {
        script "/opt/tomcat.pid"
        interval 1
        weight -2
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        track_interface {  
            eth0    
        }
        track_script {
        chk_httpp_port
        }
        virtual_ipaddress {
            10.10.3.200
        }
    }
    
    node2
    [[email protected] local]# vim /etc/keepalived/keepalived.conf
    global_defs {
    notification_email {
        [email protected]
    }
    notification_email_from [email protected]
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
    vrrp_skip_check_adv_addr
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    }
    
    vrrp_script chk_http_port {
        script "/opt/tomcat.pid"
        interval 1
        weight 2
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 51
        priority 99          #此处不同,要低于master
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        track_interface {  
            eth0    
        }        
        track_script {
        chk_httpp_port
        }
        virtual_ipaddress {
            10.10.3.200
        }
    }

5、在两台机器上编辑监控脚本
    [[email protected]p01 local]# vim /opt/tomcat.pid
    #!/bin/bash
    # keepalived for tomcat
    # edited by sky: 2017-09-12
    PS_NUM=`ps -C java --no-headers |wc -l`
    if [ $PS_NUM -eq 0 ]; then
            /etc/init.d/keepalived stop
    fi

6、在两台机器上编写tomcat启动脚本(相同)
    vim /etc/init.d/tomcat
    #!/bin/bash  
    #chkconfig: 2345 10 90  
    #description: Starts and Stops the tomcatdaemon  
    #edited by sky: 2017-09-12  
    
    CATALINA_HOME=/app/tomcat
    JAVA_HOME=/usr/local/jdk1.7.0_80
    export CATALINA_HOME  JAVA_HOME  
    
    start_tomcat=$CATALINA_HOME/bin/startup.sh  
    stop_tomcat=$CATALINA_HOME/bin/shutdown.sh  
    
    if [ ! -f $CATALINA_HOME/bin/catalina.sh ]  
    then  
            echo "===Tomcat is not available.==="  
            exit  
    fi  
    
    start()  
    {  
            echo -n "===Starting tomcat===:"  
            ${start_tomcat}  
            echo "===tomcat start ok.==="  
    }  
    
    stop()  
    {  
            echo -n "===Shutting down tomcat===:"  
            ${stop_tomcat}  
            echo "===tomcat stop ok.==="  
    }  
    
    status()  
    {  
            PS_NUM=`ps -C java --no-headers | wc -l`  
            if [ $PS_NUM -gt 0 ]  
                    then  
                                echo  -e "tomcat ( pid = `ps -C java --no-headers |awk ‘{print $1}‘`) is running...\n"
                    else  
                                echo "tomcat is stopped"  
            fi  
    }  
    
    case "$1" in  
            start)  
                    start  
                    ;;  
            stop)  
                    stop  
                    ;;  
            restart)  
                    stop  
                    sleep 1  
                    start  
                    ;;  
            status)  
                    status  
                    ;;  
            *)  
                    echo "Usage:$0 {start|stop|restart|status}"  
                    exit 1  
    esac  
    
    exit 0  
    # shell end.
    
7、在两台机器上分别启动tomcat和keepalived
    service tomcat start
    service keepalived start
    测试:
        可关闭master上的tomcat, 则可以看到vip会漂移到backup服务器, 启动master的tomcat服务器,然后再重启keepalived,则vip会自动漂移到master
        
    
8、检查日志:
    tail -f /var/log/messages
    
9、检查vip是否在主服务器上
    ifconfig

10、vip切换及恢复原则:
    1、切换:master服务器的tomcat服务停止,则master上的keepalived会自动停止, vip漂移到backup服务器
    2、恢复: master服务器修复完毕后, 请分别启动tomcat和keepalived,则vip会自动漂移到master服务器

时间: 2024-11-03 21:57:33

tomcat + keepalived 实现主备高可用的相关文章

分布式系统之缓存的微观应用经验谈(二) 【主从和主备高可用篇】

分布式系统之缓存的微观应用经验谈(二) [主从和主备高可用篇] 前言 近几个月一直在忙些琐事,几乎年后都没怎么闲过.忙忙碌碌中就进入了2018年的秋天了,不得不感叹时间总是如白驹过隙,也不知道收获了什么和失去了什么.最近稍微休息,买了两本与技术无关的书,其一是 Yann Martel 写的<The High Mountains of Portugal>(葡萄牙的高山),发现阅读此书是需要一些耐心的,对人生暗喻很深,也有足够的留白,有兴趣的朋友可以细品下.好了,下面回归正题,尝试写写工作中缓存技

Nginx+Keepalived 主备高可用 安装与配置

环境说明:操作系统:CentOS6.7 x86_64Nginx版本:nginx-1.9.7Keepalived版本:keepalived-1.2.24 主nginx + Keepalived :10.219.24.26备nginx + Keepalived :10.219.24.23虚拟IP:10.219.24.100后端tomcat_1:10.219.24.21:8080后端tomcat_2:10.219.24.21:8081 架构与原理: 前端双 Nginx + Keepalived ,Ng

MM(主主数据库)+keepalived主备高可用集群

博客分享的第一篇技术文章: 项目主要搭建:主主数据库高可用集群搭建. 数据库互为主备,应用技术:MM+keepalived 使用的是虚拟机搭建的实验向大家展示: 数据库1:192.168.4.7 数据库2:192.168.4.77 VIP:192.168.4.68 web1:192.168.4.69 web2:192.168.4.70 一.安装mysql,部署主主同步结构. 直接yum安装 配置主主同步: 由于主数据库192.168.4.7里面存放着数据,所以需要先导出数据,方法很多,我们采取m

KeepAlived双主模式高可用集群

一.keepalived简介 keepalived是vrrp协议的实现,原生设计目的是为了高可用ipvs服务,keepalived能够配置文件中的定义生成ipvs规则,并能够对各RS的健康状态进行检测:通过共用的虚拟IP地址对外提供服务:每个热备组内同一时刻只有一台主服务器提供服务,其他服务器处于冗余状态,若当前在线的服务器宕机,其虚拟IP地址将会被其他服务器接替(优先级决定接替顺序),实现高可用为后端主机提供服务.   二.keepalived组件 Keepalived组件介绍 core:ke

【MySQL进阶】Keepalived1.4.0结合MySQL 5.7.19实现主备高可用

1.基本环境 数据库安装及主备同步接上一篇文章:http://blog.51cto.com/13946719/2309514JDK 1.8_171MySQL 5.7.19CentOS 7.4Keepalived 1.4.0DB1:192.168.200.180DB2:192.168.200.181VIP: 192.168.200.99 2.下载安装Keepalived 2.1.keepalived下载 下载地址:wget http://www.keepalived.org/software/ke

keepalived双主模式高可用工作于NAT模型下的ipvs

一.Keepalived简介 ipvs提供高可用性,能够生成ipvs规则:也可以使用脚本来帮助高可用其他应用程序,没有heartbeart重量级:主要用在高可用ipvs,及一些反向代理应用程序 . 1.拓扑图 说明:1.两个代理服务器通过VIP向外提供数据 2.两个代理服务器都可以代理后端的服务器 3.为测试方便,后端服务器至提供静态页面 2.ip规划 3.安装配置haproxy 关于haproxy的详细配置, [[email protected] ~]# cat /etc/haproxy/ha

keepalived双主模型高可用+lvs-实例

拓扑图: 环境准备: Centos6.5x86_64 关闭防火墙和Selinux node5: eth0:192.168.1.190/24   VIP:192.168.1.121/24 node1:eth1:192.168.1.191/24   VIP:192.168.1.122/24 node2:RIP:eth0: 192.168.19.2/24 node3:RIP:eth0: 192.168.19.3/24   所有节点网关/DNS都为:192.168.1.1 每个服务器的hosts文件 #

Keepalived学习,双机主备高可用

一.主机安装 1.解压 tar -zxvf keepalived-2.0.18.tar.gz 2.解压后进入到解压出来的目录,看到会有configure,那么就可以做配置了 3.使用configure命令配置安装目录与核心配置文件所在位置: ./configure --prefix=/usr/local/keepalived --sysconf=/etc prefix:keepalived安装的位置 sysconf:keepalived核心配置文件所在位置,固定位置,改成其他位置则keepali

Nginx + Keepalived(主备模式)实现负载均衡高可用浅析

概述 目前关于负载均衡和高可用的架构方案能找到相当多且详尽的资料,此篇是自己学习相关内容的一个总结,防止将来遗忘再次重新查找资料,也避免踩相同的坑. 此次配置的负载均衡与高可用架构:Nginx + Keepalived(主备模式),Nginx 使用反向代理实现七层负载均衡. 众所周知,Nginx 是一款自由的.开源的.高性能HTTP服务器和反向代理服务器,也是一个IMAP.POP3.SMTP代理服务器. 也就是说Nginx本身就可以托管网站(类似于Tomcat一样),进行HTTP服务处理,也可以