快速配置spring cloud gateway-redis令牌桶訪問限制功能
阿新 • • 發佈:2021-11-24
匯入依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis-reactive</artifactId> <version>2.1.3.RELEASE</version> </dependency>
在啟動類中配置KeyResolver
可以另外定義一個配置類存放
@Bean public KeyResolver myKeyResolver() { return new KeyResolver() { @Override public Mono<String> resolve(ServerWebExchange exchange) { //通過獲取它的主機名進行訪問限制(還有很多種方式) return Mono.just(exchange.getRequest().getRemoteAddress().getHostName()); } }; }
在配置檔案新增引數
application.yml
全域性訪問限制
default-filters: - name: RequestRateLimiter args: redis-rate-limiter.replenishRate: 2 #令牌桶每秒填充平均速率 redis-rate-limiter.burstCapacity: 2 #令牌桶總容量
如果想對單個路由進行限制,則在其後新增過濾器並配置即可.