线上网络很复杂,经常会出现波动,延迟,无法访问,各种异常情况。这些场景,我们在开发阶段经常容易忽略。如果程序不考虑这些异常,会导致我们程序不能按照预期执行或者会出现服务阻塞不可用。 比如:没有设置mysql读写超时时间;消息队列服务异常,我们需要保障数据不丢失;


安装chaosblade-box web可视化平台

官方文档: https://chaosblade.io/docs/

安装ansible和expect

1
yum install ansible expect -y

Github下载chaosblade-box

1
wget https://chaosblade.oss-cn-hangzhou.aliyuncs.com/platform/release/1.0.3/chaosblade-box-1.0.3.jar

有依赖mysql,需要自行安装

1
2
#启动服务
nohup java -Duser.timezone=Asia/Shanghai -jar chaosblade-box-1.0.3.jar --spring.datasource.url="jdbc:mysql://127.0.0.1:3306/chaosblade?characterEncoding=utf8&useSSL=false" --spring.datasource.username=root --spring.datasource.password=123456  --chaos.function.sync.type=ALL --chaos.server.domain=0.0.0.0:7001 > /data/logs/chaosblade-box.log 2>&1 &

chaos.function.sync.type=ALL 开启演练场景

启动成功后在浏览器访问:http://192.168.6.1:7001 , 账号需要先注册

安装探针

安装探针

1
wget https://chaosblade.oss-cn-hangzhou.aliyuncs.com/platform/release/1.0.2/chaosagent.tar.gz -O chaos.tar.gz && tar -zxvf chaos.tar.gz -C /opt/ && sudo sh /opt/chaos/chaosctl.sh install -k c1c154d19d674831b4b1ebb2620ea8b9 -p  pay  -g support  -P 9002  -t 192.168.6.1:7001

安装完成后可以看到主机 演练主机

网络丢包

新建演练

新建演练

配置演练参数

配置演练参数

开始演练

配置演练参数

我们可以在服务器验证是否成功

1
telnet 10.0.0.46 3306