首先我们有9999网关服务和9001服务
2.1 网关服务添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-spring-cloud-gateway-adapter</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
</dependency>
2.2 网关服务配置
server:
port: 9999
spring:
application:
name: cloud-getway-service
cloud:
nacos:
discovery:
server-addr: localhost:8848
sentinel:
transport:
dashboard: localhost:8080
port: 8719
gateway:
discovery:
locator:
enabled: true #开启从注册中心动态创建路由的功能,利用微服务名进行路由
routes:
- id: nacos-payment-provider
uri: http://localhost:9001/nacos-payment-provider
predicates:
- Path=/test/**
2.3 Sentinel控制台增加对应的流控
2.3.1 按照Route ID 进行流控
这将会会整个微服务限流,不推荐
此时的设置为针对 nacos-provider这个路由id对应的流控类型为qps,阈值为1。
间隔:当每秒的请求超过QPS值,启动间隔。1秒内所有调用这个接口直接返回。不去调用业务代码。
Burst size: 应对突发请求时额外允许的请求数目。
注意: 这个Burst size 有个tips.通过的请求等于QPS阈值+Burst size 总请求数量
我们快速访问浏览器结果如下
2.3.2 API分组
这里对应API名称可以随意编写:分组的意思就是可以将一类的流控接口变成一个API分组,这里有三种方式
精准:精准匹配对应的请求地址
前缀:匹配对应的地址前缀
正则:通过正则的方式匹配
2.3.2.1 精准匹配
此时我们疯狂点击9001服务的其他端口,正常访问无限制
2.3.2.2 前缀演示
我们针对/test/login/123 或者 /test/login/v1/** 匹配后缀
疯狂点击浏览器即可
2.3.2.3 正则表达式
如果对你有帮助,可以关注博主(不定期更新各种技术文档) 给博主一个免费的点赞以示鼓励,谢谢 ! 欢迎各位????点赞????评论收藏⭐️