网关限流的作用
在高并发情况下,网关通过限流达到自我保护。在规定时间内,限制访问次数,超出次数抛出异常,进行限流。
如何配置
添加依赖
<dependency>
<groupId>com.marcosbarbero.cloud</groupId>
<artifactId>spring-cloud-zuul-ratelimit</artifactId>
<version>1.3.4.RELEASE</version>
</dependency>
限流方式一:全局限流
在application配置文件中添加配置
#是否开启限流
zuul.ratelimit.enabled=true
##60s 内请求超过 3 次,服务端就抛出异常,60s 后可以恢复正常请求
zuul.ratelimit.default-policy.limit=3
zuul.ratelimit.default-policy.refresh-interval=60
##针对 IP 进行限流,不影响其他 IP
zuul.ratelimit.default-policy.type=origin
以上面配置为例,此时通过网关访问的所有服务,都不能在60秒内访问超过3次,超过3次将直接抛出异常限流方式一:局部限流、针对某个服务进行限流
在application配置文件中添加配置
##开启限流
zuul.ratelimit.enabled=true
##60s 内请求超过 3 次,服务端就抛出异常,60s 后可以恢复正常请求
zuul.ratelimit.policies.e-book-product-provider.limit=3
zuul.ratelimit.policies.e-book-product-provider.refresh-interval=60
##针对某个 IP 进行限流,不影响其他 IP
zuul.ratelimit.policies.e-book-product-provider.type=origin
以上配置为例,就是对e-book-product-provider服务进行限流,其他服务不进行限流