我正在使用 Keepalived 在主/从配置中管理两个 Redis 实例。我遇到的情况是,如果 Keepalived 在主设备(具有更高优先级的设备)上终止,则备份服务器将接管主设备。然而,当 Keepalived 在更高优先级的机器上重新启动时,备份服务器立即将主控状态让给更高优先级的机器,这有效地刷新了 Redis 缓存。
我尝试将 nopreempt 指令添加到我的 keepalived.conf,但这种行为仍在发生。
下面是备份(低优先级)服务器的 keepalived.conf。
global_defs{
router_id redis_server_2
}
vrrp_script chk_redis {
script "killall -0 redis-server"
interval 5
}
vrrp_instance VI_1{
interface eth0
virtual_router_id 100
priority 200
advert_int 1
state BACKUP
nopreempt
track_script {
chk_redis
}
virtual_ipaddress {
10.19.105.229
}
notify_master "/usr/bin/sudo /var/lib/redis/redis.sh -m"
notify_backup "/usr/bin/sudo /var/lib/redis/redis.sh -s"
notify_fault "/usr/bin/sudo /var/lib/redis/redis.sh -k"