仲裁为何重要
Sentinel 通过多数投票判定主节点下线并提升副本。三个 Sentinel 配仲裁为二时,单节点故障不影响决策,单次网络分区也不会同时选出两个主。若把仲裁设为一,三节点集群对脑裂毫无防护。
先接好副本
Sentinel 只能提升正在复制主节点的副本。先配置复制再启动 Sentinel,确保候选提升节点数据是最新的。
redis-cli -h replica-host REPLICAOF master-host 6379
redis-cli -h replica-host INFO replication
测试故障切换
用 SHUTDOWN 杀掉主进程而不是断网。干净关闭让 Sentinel 观察到失联并执行提升。关注日志中的 +sdown、+odown、+failover-end。提升后客户端应连接 Sentinel 地址而非固定主机,以便跟随新主。
预期结果
SENTINEL get-master-addr-by-name 返回原副本主机,旧主恢复后以副本身份重新加入,测试负载不出现重连风暴。仲裁为二的三节点配置可在单节点故障下维持可用。