如何模拟 Redis Enterprise 集群故障?
最后更新于 2024 年 3 月 22 日
问题
如何模拟 Redis Enterprise 集群故障?
回答
可以通过防火墙规则来阻止到数据库端点端口的流量,从而模拟 Redis Enterprise 集群故障。如果不可行,您可以在每个 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.