基于Chaosblade的故障演练

一、Chaosblade简介:
ChaosBlade 是一款遵循混沌工程实验原理,提供丰富故障场景实现,帮助分布式系统提升容错性和可恢复性的混沌工程工具。
Chaosblade 可直接编译运行,cli 命令提示使执行混沌实验更加简单。目前支持的演练场景有操作系统类的 CPU、磁盘、进程、网络,Java 应用类的 Dubbo、MySQL、Servlet 和自定义类方法延迟或抛异常等以及杀容器、杀 Pod,具体可执行 blade create -h 查看。

详见: https://chaosblade-io.gitbook.io/chaosblade-help-zh-cn/blade-create-network-dns

二、使用指南
1.获取 ChaosBlade 最新的 release 包,下载完成后解压即可
curl -O https://chaosblade.oss-cn-hangzhou.aliyuncs.com/agent/github/1.2.0/chaosblade-1.2.0-linux-amd64.tar.gz
tar -xvf chaosblade-1.2.0-linux-amd64.tar.gz
在这里插入图片描述

2.挂载agent到指定的进程里(详见:https://chaosblade-io.gitbook.io/chaosblade-help-zh-cn/blade-prepare-jvm)
blade prepare jvm --pid 目标pid
在这里插入图片描述

3.创建故障场景,
常见场景:
(1)请求延迟(delay)
Api接口延迟
blade create dubbo delay --time 延迟时间,单位毫秒 --requestpath 接口路径
./blade create servlet delay --time 15000 --requestpath /path/path1/getitems.json
在这里插入图片描述

Dubbo 延迟
blade create dubbo delay --time 延迟时间,单位毫秒 --service 消费者类 --methodname 消费者方法 --consumer
./blade create dubbo delay --time 3000 --service com.guahao.reward.service.EntranceConfigService --methodname getConfigByEntrance --consumer
(2)修改接口响应状态码(modifyCode)
./blade c servlet mc —requestpath 接口路径 --code=状态码
./blade c servlet mc --requestpath /path/path1/getitems.json --code=502
在这里插入图片描述

(3)接口异常(throwCustomException)
Api 接口异常
应用下的所有接口异常:./blade create servlet throwCustomException
指定接口异常:./blade create dubbo throwCustomException --exception java.lang.Exception --exception-message chaosblade_test --service 消费者类 --methodname 消费者方法 --consumer

dubbo 接口异常
应用下的所有接口异常:./blade create dubbo throwCustomException --exception java.lang.Exception --consumer --appname 应用名称
指定接口异常:./blade create dubbo throwCustomException --exception java.lang.Exception --exception-message chaosblade_test --service 消费者类 --methodname 消费者方法 --consumer

4.查询创建的故障场景,并销毁
./blade status --type create
./blade destroy Uid
基于Chaosblade的故障演练_第1张图片

你可能感兴趣的:(混沌工程,ChaosBlade,java,jvm)