1.引入redis依赖
<!‐‐redis‐‐>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐data‐redis‐reactive</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
2.定义一个限流的key
@Bean
public KeyResolver ipKeyResolver() {
return new KeyResolver() {
@Override
public Mono<String> resolve(ServerWebExchange exchange) {
return
Mono.just(exchange.getRequest().getRemoteAddress().getHostName());
}
};
}
3.在application.yml中设置redis和令牌桶生成令牌速率
‐ name: RequestRateLimiter #请求数限流 名字不能随便写
args:
key‐resolver: "#{@ipKeyResolver}"
redis‐rate‐limiter.replenishRate: 1 #令牌桶每秒填充平均速率
redis‐rate‐limiter.burstCapacity: 1 #令牌桶总容量
4.配置redis
redis:
host: 192.168.200.128
port: 6379