如何模拟 Redis 企业集群故障?

上次更新 2024 年 3 月 22 日

问题

如何模拟 Redis 企业集群故障?

答案

可以通过使用防火墙规则阻止到数据库端点端口的流量来模拟 Redis 企业集群故障。如果无法做到,可以执行以下操作(在每个 Redis 集群节点上):

停止节点监视器进程  supervisorctl stop node_wd 然后停止代理/端点进程,这样到所有数据库的连接都会失败,从而导致 LB 健康检查失败。  supervisorctl stop dmcproxy 并恢复  supervisorctl start node_wd


模拟网络电缆断开连接的良好脚本如下所示。

#!/bin/bash

# usage: ./faildrop.sh 60
# will default to 90 seconds otherwise
#

s1=${1:-90}

iptables -t filter -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -t filter -A INPUT -j DROP
iptables -t filter -A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
iptables -t filter -A OUTPUT -j DROP

echo Killed, waiting ${s1} seconds...
sleep ${s1}

echo Resuming...

iptables -F INPUT
iptables -F OUTPUT

echo Done.