1)gateway添加sentinel相关依赖
xml
<spring-cloud.version>2021.0.1</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version>
<dependencies>
<!--gateway-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--sentinel-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>2021.0.1.0</version>
</dependency>
<!--sentinel-gateway-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
<version>2021.0.1.0</version>
</dependency>
</dependencies>
2)gateway添加相关的配置
yml
spring:
cloud:
gateway:
routes:
- id: user-service
uri: http://localhost:8081
predicates:
- Path=/user/*
sentinel:
transport:
dashboard: localhost:8888
3)启动gateway
4)下载sentinel控制台并启动
下载地址:https://github.com/alibaba/Sentinel/releases
启动:java -Dserver.port=8888 -jar sentinel-dashboard-1.8.6.jar
5)sentinel控制台添加流控规则
先访问一下网关:http://localhost:8080/user/1
添加流控规则:
6)jmeter压测
10个并发请求,只有5个会成功:
7)API分组限流
新建API分组
添加流控规则
测试代码下载:
https://github.com/xjs1919/enumdemo/tree/master/gateway-sentinel-demo