1、引入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>lemon-alibaba</artifactId>
<groupId>com.lemon.alibaba</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>lemon-alibaba-sentinel</artifactId>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- sentinel 规则持久化依赖-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
</dependencies>
</project>
2、在nacos配置中心配置sentinel流控降级规则
3、在项目application.yml配置文件中配置数据源:
server:
port: 13000
spring:
application:
name: lemon-alibaba-sentinel
cloud:
nacos:
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
sentinel:
transport:
dashboard: 127.0.0.1:8080 #sentinel控制台地址
datasource:
flow-rule: #随便写,只要保证时唯一的就可以,可以书写多个数据源子节点配置为在nacos中配置的相关信息,包括nacos地址,dataid等等
nacos:
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
dataId: lemon-alibaba-sentinel-nacos-rule #nacos中配置的dataid,sentinel将会使用这个配置中的控流降级规则
RuleType: flow
4、重启sentinel,在nacos中配置的规则即可生效
5、nacos中配置的规则一般如下:
resource:资源名称
limitApp:来源应用
grade:阀值类型,0:线程数,1:QPS
count:单机阀值
strategy:流控模式,0:直接,1:关联,2:链路
controlBehavior:流控效果,0:快速失败,1:warmUp,2:排队等待
clusterMode:是否集群