redis配置 <!--redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis-reactive</artifactId> </dependency>
yml里面配置
spring:
redis:
host: 127.0.0.1
port: 6379
database: 10
application:
name: iem-gateway
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
routes:
- id: iem-resource
uri: lb://iem-resource
predicates:
- Path=/resource-api/**
filters:
- StripPrefix=1
- name: Hystrix
args:
name: fallbackcmd
fallbackUri: forward:/fallBackResource
- name: RequestRateLimiter
args:
key-resolver: '#{@ipKeyResolver}'
redis-rate-limiter.replenishRate: 1 #两派每秒平均填充速率
redis-rate-limiter.burstCapacity: 2 #令牌桶总容量
说明:
- 1 增加redis相关配置
- 2.1 -name: RequestRateLimiter, filter的名称,必须是RequestRateLimiter
- 2.2 redis-rate-limiter.replenishRate: 允许用户每秒处理的请求个数
- 2.3 redis-rate-limiter.burstCapacity: 令牌桶的容量,允许在一秒内完成的最大请求数
- 2.4 key-resolver: 使用的Bean名称,规则为按名称引用Bean
增加相关代码
@Bean
public KeyResolver ipKeyResolver(){
logger.info("ip地址限流");
// exchange.getRequest().getPath().toString());
return exchange -> Mono.just(exchange.getRequest().getRemoteAddress().getHostName());}
下载pmeter压力测试
https://www.cnblogs.com/monjeo/p/9330464.html
然后开启redis的monitor进行监控
注意一定是monitor监控,时间太短,redis数据自动清除,数据下:

参考:https://www.cnblogs.com/fengfujie/p/11820575.html
http://www.iocoder.cn/categories/Spring-Cloud-Gateway/
本文详细介绍了如何在Spring Cloud Gateway中配置Redis实现请求限流,包括添加依赖、配置YML文件、设置限流规则及监控方法。通过具体代码示例,展示了如何自定义限流键值解析器,以及如何使用压力测试工具验证限流效果。
3万+

被折叠的 条评论
为什么被折叠?



