2020年12月编程语言排行榜
|
再去请求你应用的controller,是不是发现异常产生了?这就是猴子在努力的捣乱中... 关于上面这些配置,再简单解释下: 你会发现chaos - monkey 配置下,除了 enabled,还有两项比较大的配置项,一个是Assault,一个是Watcher。 其中Assault代表是搞什么破坏,比如破坏类型有超时、内存占用、杀死进程、抛出异常等等
而Watcher 表示都要在哪些地方搞破坏。一个是What,一个是Where。 Watcher支持多种类型,比如Spring 常用的组件:
那你说都 What 和 Where 了,怎么没有When?还真有Level就是。 chaos.monkey.enabled 用来打开和关闭ChaosMonkey。对应的配置中,除了设置Assault之外,不同的Assault也可以设置攻击的频率,配置项是chaos.monkey.assaults.level比如1代表每次请求都攻击,10代表每十次请求攻击一次。 chaos.monkey.assaults.latencyRangeStart 和chaos.monkey.assaults.latencyRangeEnd 这两个配置项用来配置LatencyAssault这个攻击的延迟时间值范围。
如下图所示,实际部署之后,每个ChaosMonkey会藏身于各个服务中,出其不意进行攻击。 后来Netflix 开源了其关于混沌工程的实现 ChaosMonkey,以猴子的形象来代表在系统里出其不意的破坏者。 比如
再看Chaos 原则里提到的这些:
我们自己在代码层面,在部署层面仅能关注应用的功能正常,但上述这些意想不到的出错,是我们在代码层面不太容易控制,也不易去测试的。 而ChaosMonkey 就是用来做这个的。所以,对于这些捣乱的猴子,我们是应该欢迎的,是不是像犀牛鸟之于犀牛? 关于ChaosMonkey,各个语言,各个公司也都有一些实现,其中Netflix的最出名。是go语言实现的。 在 Java Spring Boot 技术栈中,我发现一个容易理解和上手的实现。
我们一起来看下如何上手以及它是怎样实现的。 1. 上手
添加maven 依赖 (编辑:阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

