You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多实例负载均衡环境下Chaos Monkey特定实例攻击控制咨询

多实例Spring Boot环境下Chaos Monkey指定实例攻击解决方案

核心思路

要实现指定实例触发Chaos Monkey攻击,关键在于绕过负载均衡的随机转发逻辑,直接定位到目标实例的管理端点。

具体实现步骤

1. 为每个实例配置唯一访问标识

在各Spring Boot实例的配置文件(application.properties/application.yml)中,通过两种方式区分实例:

  • 方式一:设置独立的管理端口
    # 实例1配置
    management.server.port=8081
    # 实例2配置
    management.server.port=8082
    
  • 方式二:保留统一端口,为Chaos Monkey端点添加实例唯一标识
    # 通过环境变量注入INSTANCE_ID(如容器ID、主机名)
    management.endpoints.web.path-mapping.chaosmonkey=/chaosmonkey/${INSTANCE_ID}
    

2. 直接访问目标实例的管理端点

不再通过负载均衡公共入口转发,直接用实例IP+管理端口(或带标识的路径)触发攻击:

# 启用实例1的延迟攻击
curl -X POST http://<实例1IP>:8081/actuator/chaosmonkey/assaults/delay/enable
# 禁用实例2的所有攻击
curl -X POST http://<实例2IP>:8082/actuator/chaosmonkey/assaults/disable

3. 借助服务注册中心定位实例

如果使用Eureka、Nacos等注册中心,可通过其API获取目标实例的IP和端口:

  • 调用注册中心实例列表接口,筛选出目标INSTANCE_ID对应的地址,再发起攻击请求。

4. 配置负载均衡路由规则(可选)

若必须通过公共入口访问,可在负载均衡层(如Spring Cloud Gateway、Nginx)添加基于请求头/参数的路由规则:

  • 以Spring Cloud Gateway为例,添加路由断言:
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                .route("target-instance-1", r -> r.header("X-Target-Instance", "instance-1")
                        .uri("http://<实例1IP>:8081"))
                .route("target-instance-2", r -> r.header("X-Target-Instance", "instance-2")
                        .uri("http://<实例2IP>:8082"))
                .build();
    }
    
  • 携带指定头触发攻击:
    curl -H "X-Target-Instance: instance-1" -X POST http://网关地址/actuator/chaosmonkey/assaults/kill/enable
    

注意事项

  • 确保每个实例的配置中暴露Chaos Monkey相关端点:
    management.endpoints.web.exposure.include=chaosmonkey,chaosmonkey-assaults
    
  • 生产环境需为管理端点添加权限校验,防止未授权访问。

内容的提问来源于stack exchange,提问作者TWICE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 03:41:28