<dependency>
<groupId>com.marcosbarbero.cloud</groupId>
<artifactId>spring-cloud-zuul-ratelimit</artifactId>
<version>1.7.1.RELEASE</version>
</dependency>
ratelimit项目源码地址:https://github.com/marcosbarbero/spring-cloud-zuul-ratelimit
这是我使用的spring-cloud-zuul-ratelimit版本,在使用之前我参考了Github上官方给出的配置示例,但不是很详细,没有具体给出针对多个URL做不同的限流配置,网上也没有相关的介绍,于是初步看了一下配置类的源码,按照配置类的格式做了针对不同URL做不同限流的配置,下面贴出我的配置
zuul:
routes:
service_a:
path: /v1/service-a/**
serviceId: service_a
ratelimit:
key-prefix: service_a
enabled: true
behind-proxy: true
repository: IN_MEMORY
policy-list:
service_a:
- limit: 2
refresh-interval: 10
type:
- type: url
matcher: /t1
- type: url
matcher: /t2
#- type: user
# matcher: system_admin
#- type: origin
# matcher: localhost
- limit: 5
refresh-interval: 20
type:
- type: url
matcher: /t3
#- type: user
# matcher: system_admin
#- type: origin
# matcher: localhost
policy-list实际上是一个map<String,list<policy>>,其中的string也就是对应着service_a这个自定义服务名,它对应着多个policy
@Valid
@NotNull