常见限流策略
- guava RateLimiter
- Hystrix / Sentinel
- Redis
- Nginx
- AHAS
Redis实现
创建一个自定义的拦截器类
1 | /** |
代码中 redis 的使用的是分布式锁的形式,这样可以最大程度保证线程安全和功能的实现效果。代码中设置的是 1S 内同一个接口通过同一个 ip 访问 5 次,就将该 ip 禁用 1 个小时。
Redis 分布式锁的关键代码
1 | /** |
将上面自定义的拦截器通过 registry.addInterceptor
添加生效
1 |
|