防止单点故障——keepalived+tomcat高可用搭建

目录

(1)方案规划:

(2)安装tomcat:

(3)安装keepalived:

(4)配置keepalived:

A、主服务器:

B、备服务器:

(5)编写tomcat健康检查脚本:

(6)启动测试:


(1)方案规划:

方案规划是:安装2台tomcat服务器,并且每一个tomcat上都有一个keepalived,通过keepalived映射的VIP访问tomcat服务器。keepalived通过shell脚本定时检查tomcat健康状态,如果tomcat进程死掉,就立即杀死对应的keepalived并邮件通知管理员。此时备keepalived开始起作用,tomcat服务可正常访问,如此便做到了高可用。示意图如下:

(2)安装tomcat:

在主、备服务器上安装tomcat,注意两个tomcat配置的端口号必须要一致。

(3)安装keepalived:

在主、备服务器上安装keepalived,操作步骤见上述操作。

(4)配置keepalived:

配置文件:/etc/keepalived/keepalived.conf

A、主服务器:

global_defs {

   router_id host_192.168.0.141 #唯一标识符

}

vrrp_script checktomcat {

    script "/data/shell/tomcat_check.sh" #健康检查脚本

    interval 3 #定时3秒执行一次脚本

}

vrrp_instance VI_1 {

    state MASTER #主、备角色

    interface eth0 #网卡

    virtual_router_id 51 #keepalived主、备群唯一符号,必须相同

    priority 100 #优先级,主高、备低

 nopreempt #非争抢VIP模式

    advert_int 1

    authentication {

        auth_type PASS #keepalived主、备群密码,必须相同

        auth_pass 2222 #keepalived主、备群密码,必须相同

    }    

    virtual_ipaddress {

        192.168.100.160 #VIP

    }

    track_script {

        checktomcat #vrrp_script名称必须放在VIP下面

    }

}

B、备服务器:

global_defs {

   router_id host_192.168.0.142

}

vrrp_script checktomcat {

    script "/data/shell/tomcat_check.sh"

    interval 3

}

vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 51

    priority 50

 nopreempt

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 2222

    }    

    virtual_ipaddress {

        192.168.100.160

    }

    track_script {

        checktomcat

    }

}

简单来说,就是复制主服务器上keepalived.conf配置文件,然后修改参数:router_id、state、priority,三个参数值即可。

(5)编写tomcat健康检查脚本:

编写脚本检查tomcat是否正常启动运行,如果检测到tomcat停止,那么就将该服务器上的keepalived进行杀死(还可以在此添加发送邮件的功能,keepalived自带的发送邮件只能发送服务器内部邮件,无法发送外部网络邮件),因为keepalived的高可用是体现在keepalived软件上,只有当该软件进程被杀死,VIP才会进行浮动到备用keepalived上。

具体脚本资源见:https://download.csdn.net/download/LSY_CSDN_/12051747,该脚本中只是检查tomcat健康,没有杀死keepalived,下载后只需要在.sh脚本文件中监测到tomcat异常发送邮件的地方添加上:service keepalived stop,命令即可。

(6)启动测试:

首先,将主、备服务器上tomcat先启动好,然后再将keepalived启动好,然后通过浏览器输入VIP+tomcat端口号访问。

将主keepalived上的tomcat服务杀死,此时tomcat健康检查的脚本会发现tomcat进程没有了,就会杀死主keepalived,然后VIP就会浮动到备服务器上,此时浏览器中刷新访问就会访问到备服务器上tomcat。

将主keepalived上的tomcat、keepalived都启动好。如果配置的非抢占VIP模式,那么访问的还是备服务器上tomcat,否则VIP会浮动到主keepalived上,将访问主服务器上tomcat。

发布了131 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/LSY_CSDN_/article/details/103723063