sentinel持久化
Sentinel持久化模式
1、原始模式
2、拉模式
3、推模式
sentinel流控参数:
resource:资源名,即限流规则的作用对象 count: 限流阈值 grade: 限流阈值类型(QPS 或并发线程数) limitApp: 流控针对的调用来源,若为 default 则不区分调用来源 strategy: 调用关系限流策略 (0(默认)用于直接流量控制,以调用来源origin区分、1 进行相关的流量控制(利用相关资源)、2 用于链流控制(按入口资源)) controlBehavior: 流量控制效果(0、直接拒绝、1、Warm Up、2、匀速排队 3、Warm Up+匀速排队) refResource: 在限流中使用的相关资源或上下文引用资源。 warmUpPeriodSec:预热时间,默认10s 单位(秒) maxQueueingTimeMs:匀速时间,即流量控制效果中匀速排队时间,默认500ms 单位(毫秒) clusterMode :是否开启集群限流默认false clusterConfig:集群限流相关配置
持久化 推模式 的实现:
第一步:POM文件
<?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>vnacos</artifactId> <groupId>com.nacos</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>order-sentinel</artifactId> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--sentinel启动器--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> <!-- Spring boot 中spring-boot-starter-web 中已经匹配的版本。 如果不在pom.xml新增validation-api和hibernate-validator就不会出现版本不匹配 配套版本: (1): validation-api 1.1.0.Final + hibernate-validator 5.3.6.Final (2): validation-api 2.0.1.Final + hibernate-validator 6.0.16.Final 不匹配报错: Reason: HV000030: No validator could be found for constraint 'javax.validation.constraints. NotEmpty' validating type 'java.lang.String'. Check configuration for 'dataId' --> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.16.Final</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> </dependency> <!--sentinel实现持久化 推模式--> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId> </dependency> </dependencies> </project>
第二步:配置文件
server: port: 8050 spring: application: name: order-sentinel cloud: sentinel: transport: dashboard: 127.0.0.1:8850 # 控制台 ip和端口 web-context-unify: false # 默认将调用链路收敛, 导致链路流控效果无效, 所以 web-context-unify: false 才可以 datasource: flow-rule: nacos: server-addr: 192.168.43.197:8848 username: nacos password: nacos dataId: order-sentinel-o groupId: DEFAULT_GROUP rule-type: flow
第三步:nacos进行配置

启动项目,查看Sentinel流控配置:
