基于 keepalived 实现两台机器服务(主备)故障自动切换

前言

本文要说的是基于 keepalived 实现两台服务器之间的主备切换 。当一台机器的 Java 进程异常关闭,另一台机器能够自动监测到并启动本机的 Java 进程。

keepalived 的工作机制及原理不多做介绍,自行搜索了解,keepalived 的安装部署请参考 keepalived 的安装及使用

个人觉得动手实践安装下 keepalived,然后结合 keepalived 的配置文件会有助于理解 keepalived 的工作机制。

需要部署的服务

部署在服务器的项目不是一个 web 程序,是一个普通的 Java 应用。主要功能是定时从文件服务器下载文件,然后做一些处理,最终把处理过的文件放到本地。

部署要求

当一台服务器部署的服务出现故障时,能够有 备用机器 继续提供服务,尽量避免人工介入去恢复系统。注意跟负载均衡的区别!初步方案只提供一台备用机。

方案

1. 实现原理

keepalived 的配置文件中有 权重STATE 两个配置项,两台机器上的 keepalived 通过 虚拟IP 绑定之后,它们之间就可以通过上述的配置项来进行 ”选举“ ,区分 MASTERBACKUP

然后配合 keepalived 中另外的两个功能,检测脚本通知脚本 实现我们的主备切换的需求。

到底如何决定 MASTER 和 BACKUP ?

STATE 的值可以是 MASTERBACKUP,当 两台机器配置的 STATE 的值相同,并且权重相同时,谁先启动谁是 MASTER,当两台机器的配置的 权重 相同时,state 为 MASTER 的那台机器最终会成为 MASTER(哪怕这台机器启动的时间比另一台晚)

检测脚本的作用

对我们的使用场景来说,检测脚本的作用有两个,一是检测我们的 java 进程是否存在,二是对 keepalived 的权重进行加减

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值