spring:
cloud:
gateway:
routes:
- id: requestratelimiter_route
uri: http://example.org
filters:
- name: RequestRateLimiter
args:
redis-rate-limiter.replenishRate: 10
redis-rate-limiter.burstCapacity: 20
key-resolver: "#{@ipKeyResolver}"
重要参数:
- name 必选RequestRateLimiter
- redis-rate-limiter.replenishRate 充满令牌数。简单说就是允许每秒并发用户数
- 每秒总并发数量
- key-resolver: 这是限流规则,ipKeyResolver这是一个bean的名字,bean里面定义了限流规则。
bean 定义
@Bean
KeyResolver ipKeyResolver() {
return exchange -> Mono.just(exchange.getRequest().getRemoteAddress().getHostString());
}
这里是根据用户的访问ip进行限流。
还有其他的根据名字参数之类的限流形式,定义好bean替换了就行
完
版权声明:本文为sishenhzy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。