网关限流使用
① pom 依赖
这里一定要注意,是网关引入的 redis-reactive,背压模式的 redis。
② 配置按照请求 IP 的限流
- 配置 bean,多维度限流量的入口 对应上边 key-resolver
OK 完成。
③ 压力测试
并发 5 个线程。
Redis 数据变化
我们使用 redis 的monitor 命令,实时查看 redis 的操作情况。 会发现在 redis 中会操作两个 key
- request_rate_limiter..timestamp
- request_rate_limiter..tokens
④ 实现原理
Spring Cloud Gateway 默认实现 Redis 限流,如果扩展只需要实现 ratelimter 接口即可。
核心代码
- 判断是否取到令牌的实现,通过调用 redis 的 LUA 脚本。
LUA 脚本
♥️ 获取支持
遇到问题?
如果您在使用过程中遇到任何问题、有功能建议或需求,请点击此卡片前往 Gitee 仓库提交 Issue。