网关实现限流达到自我保护,只需要对 网关服务端 做配置。
网关限流参数
1、创建项目
2、修改 pom.xml 文件
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.sxt
zuul-geteway-ratelimt
0.0.1-SNAPSHOT
org.springframework.boot
spring-boot-starter-parent
1.5.13.RELEASE
UTF-8
UTF-8
1.8
org.springframework.cloud
spring-cloud-dependencies
Dalston.SR5
pom
import
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-starter-zuul
com.marcosbarbero.cloud
spring-cloud-zuul-ratelimit
1.3.4.RELEASE
3、修改全局配置文件
3.1、全局配置文件
spring.application.name=zuul-geteway-ratelimt
server.port=9020
eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/
#访问路由
zuul.routes.e-book-product-provider.path=/product/**
zuul.routes.e-book-product-provider.serviceId=e-book-product-provider
#访问路由
zuul.routes.e-book-order-provider.path=/order/**
zuul.routes.e-book-order-provider.serviceId=e-book-order-provider
#全局配置限流
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
3.2、局部配置文件
spring.application.name=zuul-geteway-ratelimt
server.port=9020
eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/
#访问路由
zuul.routes.e-book-product-provider.path=/product/**
zuul.routes.e-book-product-provider.serviceId=e-book-product-provider
#访问路由
zuul.routes.e-book-order-provider.path=/order/**
zuul.routes.e-book-order-provider.serviceId=e-book-order-provider
############局部限流:针对某个服务进行限流 ############
# 开启限流,针对某个,zull.ratelimit.policies.服务名.
# 没有被限流的服务不受该配置影响
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
4、添加启动类
5、测试
首次访问
60秒内第4次访问