2025年最后一篇文章 总结的是之前快手发生的事情

就技术层面 我想到使用简单的案例验证模拟 正好复习之前的知识点 我第一想到的也是gateway网关防范
但为啥还是大量DDos攻击顶不住


搭配gpt配合学习仿照模拟一个小案例
技术点
项目使用trae直接构建好初始项目 不用再自己一个一个搭建了
首先是模拟普通业务 登录服务模块
@RestController
public class RegisterController {
@PostMapping("/register")
public String register(@RequestParam("phone") String phone) {
return "register success : " + phone;
}
}
重点理解是gateway网关
配置文件:
server:
port: 8080
spring:
application:
name: gateway
cloud:
gateway:
routes:
- id: register-service
uri: http://localhost:8081
predicates:
- Path=/register/**
data:
redis:
host: localhost
port: 6379
上面这个之前学习springcloud总结过
核心是lua即如何过滤
@Component
public class LuaRateLimitFilter implements GlobalFilter, Ordered {
private static final String LUA_SCRIPT =
"local current = redis.call('INCR', KEYS[1]) " +
"if tonumber(current) == 1 then " +
" redis.call('EXPIRE', KEYS[1], ARGV[1]) " +
"end " +
"if tonumber(current) > tonumber(ARGV[2]) then " +
" return 0 " +
"end " +
"return 1";
private final ReactiveStringRedisTemplate redisTemplate;
private final RedisScript<Long> redisScript;
public LuaRateLimitFilter(ReactiveStringRedisTemplate redisTemplate) {
this.redisTemplate = redisTemplate;
this.redisScript = RedisScript.of(LUA_SCRIPT, Long.class);
}
@Override
public Mono<Void> filter(ServerWebExchange exchange,
GatewayFilterChain chain) {
String ip = exchange.getRequest()
.getRemoteAddress()
.getAddress()
.getHostAddress();
String path = exchange.getRequest().getURI().getPath();
String key = "rate:" + ip + ":" + path;
return redisTemplate.execute(
redisScript,
Collections.singletonList(key),
Arrays.asList("1", "5")
).single()
.flatMap(result -> {
if (result != null && result == 1L) {
return chain.filter(exchange);
}
exchange.getResponse()
.setStatusCode(HttpStatus.TOO_MANY_REQUESTS);
return exchange.getResponse().setComplete();
});
}
@Override
public int getOrder() {
return -100;
}
}
同一个 IP 访问同一个接口,1 秒内最多 5 次,超了直接 429
测试验证 使用jmeter
我们先攻击8080直接绕过gateway
前面还能成功
其实会一直灌入 因为没有拦截 但本人机器的端口数量有限 所以出现如下错误
我理解的就是大量攻击 导致系统资源耗尽 成了一个fw 那不是随便怎么搞都行吗
然后启动gateway防护
我们会看到429 将其防范
参考:GPT学习
文件文档同步gitee:https://gitee.com/gao-yuan187/fang
代码同步到gitee:https://gitee.com/gao-yuan187/DDos_Test
2026年见








浙公网安备 33010602011771号