混沌工程之 SpringBoot 集成 ChaosMonkey

Posted zuozewei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了混沌工程之 SpringBoot 集成 ChaosMonkey相关的知识,希望对你有一定的参考价值。

一、前言

这几天在用一些混沌工程的工具,所以整理一下,以备参考。

后面有空再整理其他的工具,一个个都写一写。反正闲着也是闲着。

我没有按正规格式写专栏的习惯。所以就随意一点。

二、前提条件

有一个 SpringBoot 的应用。

三、具体操作

  1. 添加依赖
<dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>chaos-monkey-spring-boot</artifactId>
        <version>2.3.1</version>
</dependency>
  1. 配置 application.yml
chaos:
  monkey:
    # 启动monkey
    enabled: true
    assaults:
      # 确定多少请求被攻击,1为攻击所有请求;5:每5个请求攻击一次
      level: 5
      # 增加最小延时,毫秒
      latency-range-start: 5000
      # 增加最大延时,毫秒
      latency-range-end: 10000
      # 延时攻击启动
      latency-active: true
      # 异常攻击启动
      exceptions-active: true
      # kill应用启动
      kill-application-active: true
    watcher: # 控制范围
      controller: false
      rest-controller: false
      service: true
      repository: false # (JDBC和JPA)
      component: false
  1. 添加启动参数

在这里插入图片描述

  1. 运行项目

在这里插入图片描述

  1. 访问接口
    在这里插入图片描述

看,出现了 8 秒响应时间的情况。

正常访问是:
在这里插入图片描述

由于前面加 了5-10 秒的随机延迟,所以上面出现了 8 秒的接口。

还有这种随机的 500 异常。

在这里插入图片描述
对应的日志如下:

在这里插入图片描述

四、总结

ChaosMonkey还能和 Spinnaker 集成,那是更为广泛的用法。 以后再写。

以上是关于混沌工程之 SpringBoot 集成 ChaosMonkey的主要内容,如果未能解决你的问题,请参考以下文章

Chaos Mesh + SkyWalking,打造可观测的混沌工程

迈向混沌工程闭环生态的 Chaos Mesh® 2.0

Chaos Mesh® 在腾讯——腾讯互娱混沌工程实践

云原生下的混沌工程 - Chaos Mesh

在 Kubernetes 实施混沌工程—— Chaos Mesh® 原理分析与控制面开发

Chaos Mesh 实战分享丨通过混沌工程验证 GreatDB 分布式部署模式的稳定性