网关实现限流达到自我保护,只需要对 网关服务端 做配置。

网关限流参数

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次访问

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐