keepalived 实现 Java 服务的高可用(主备切换)
前言 本文要说的是基于 keepalived 实现两台服务器之间的 主备切换 ,从而实现 Java 服务的高可用。 keepalived 的原理不多做介绍,自行搜索了解, keepalived 的安装部署请参考 keepalived 的安装及使用 。 个人建议 不要沉迷于 死扣 和 理解 原理,网上关于原理的文章大同小异,关键词就是 虚拟ip ,了解个大概,动手实践下,结合 keepalived 的配置文件会更好。 项目描述 我所做的项目是不是一个 web 程序,主要功能是定时从文件服务器下载文件,然后做一些处理,放到本地。 需求 当一台服务器部署的 系统出现故障 时,能够有 备用机器 继续提供服务,尽量避免人工介入去恢复系统。注意跟 负载均衡 的区别!初步方案只提供一台备用机。 方案 1. 实现原理 keepalived 的配置文件中有 权重 和 STATE 两个配置项, 两台机器 上的 keepalived 通过 虚拟IP 绑定之后,它们之间就可以通过上述的配置项来进行 ”选举“ ,区分 MASTER 和 BACKUP 。 然后配合 keepalived 中另外的两个功能, 检测脚本 和 通知脚本 实现我们的主备切换的需求。 到底如何决定 MASTER 和 BACKUP ? STATE 的值可以是 MASTER 和 BACKUP ,当 两台机器配置的 STATE 的值相同