管理中心高可用
目录
一、管理中心主从配置-Keepalived
当您需要管理中心能够长期稳定提供服务时,可以通过Keepalived搭建主从模式。
从节点充当主节点的备份,以保证系统的高可用性和容错性。
当主节点故障时,从节点可以立即接管主节点的工作,以保证系统的正常运行。
多个管理中心的 redis 和数据库配置信息必须保持一致,数据库和redis配置参考《产品安装》。
环境准备
系统:Linux localhost.localdomain 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
服务器A(主节点):10.10.22.211
服务器B(备节点):10.10.22.215
虚拟IP:10.10.22.110
安装启动管理中心
使用Keepalived配置ESB管理中心主从模式,需要先分别启动主从管理中心,即分别在不同服务器上启动管理中心,启动方式参考安装手册。
查看接口名称
Keepalived配置主从模式需要指定一个具体的网口来虚拟IP。 查看接口名称的方式如下:
ifconfig -a
输出结果类似如下信息:
在这个例子中,真实的接口名是 ens192,后续配置中会用到。
常见的接口名还有 ens192, enp0s3, eno1 等。
安装Keepalived
注: 主备节点均需安装 keepalived
1. 安装
sudo yum install -y keepalived
2. 验证
keepalived -v

配置Keepalived
1. 主节点配置
(/etc/keepalived/keepalived.conf)
global_defs {
router_id LVS_MASTER # 唯一标识
}
vrrp_script chk_java {
script "/etc/keepalived/check_java.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER # 主节点
interface ens192 # 网络接口
virtual_router_id 51 # 主备必须相同
priority 100 # 优先级(100-254),主高于备
# 主备通信认证
authentication {
auth_type PASS
auth_pass 1111 # 密码,主备需一致
}
# 虚拟IP配置,可配置
virtual_ipaddress {
10.10.22.110/24 dev ens192
}
track_script {
chk_java
}
}
2. 备节点配置
(/etc/keepalived/keepalived.conf)
global_defs {
router_id LVS_BACKUP
}
vrrp_script chk_java {
script "/etc/keepalived/check_java.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP # 备节点
interface ens192
virtual_router_id 51 # 与主节点相同
priority 90 # 优先级低于主节点
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.10.22.110/24 dev ens192
}
track_script {
chk_java
}
}
3. 创建Java进程检测脚本
(两台服务器相同,都需要创建)
创建 /etc/keepalived/check_java.sh:
#!/bin/bash
# 检查Java进程是否存在
if pgrep -f "ESBManage" > /dev/null; then
exit 0
fi
# 两者都不存在则返回错误
exit 1
赋予执行权限:
chmod +x check_java.sh
启动Keepalived
重启或重载 Keepalived 使配置生效:
# 先测试配置文件语法是否正确
sudo keepalived -t -f /etc/keepalived/keepalived.conf
# 如果语法OK,则重启服务(因为修改了接口,推荐重启而非重载)
sudo systemctl restart keepalived
# 重载配置指令如下
sudo systemctl reload keepalived
检查服务状态
sudo systemctl status keepalived
确保状态是 active (running)
查看 VIP 是否绑定
ip addr show ens192 # 将ens192替换为你的接口名
应该在输出中看到 10.10.22.110 这个 IP 地址。
验证
单独访问主节点
单独访问备节点
访问VIP
停止主节点访问VIP
停止主备节点访问VIP
