方案一使用sentinel 控制面板
1、启动sentinel
java -jar sentinel.jar
2、在自己应用user中添加依赖
<modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.sleep</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <nacos-client>2.0.1</nacos-client> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId> <version>2.2.0.RELEASE</version> <exclusions> <exclusion> <artifactId>nacos-client</artifactId> <groupId>com.alibaba.nacos</groupId> </exclusion> <exclusion> <artifactId>servo-core</artifactId> <groupId>com.netflix.servo</groupId> </exclusion> </exclusions> </dependency> <!--sentinel指定nacos为数据源 --> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId> <version>1.7.1</version> <exclusions> <exclusion> <artifactId>nacos-client</artifactId> <groupId>com.alibaba.nacos</groupId> </exclusion> </exclusions> </dependency> <!-- 引用sentinel配置 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> <version>2.2.1.RELEASE</version> <exclusions> <exclusion> <artifactId>spring-cloud-commons</artifactId> <groupId>org.springframework.cloud</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactId> <version>1.7.1</version> </dependency> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>${nacos-client}</version> </dependency> </dependencies>
3、新增bootstrap.yml
spring: application: name: user # 服务名称 应用名称 cloud: nacos: discovery: server-addr: localhost:8848 # 配置注册中心的地址 #sentinel: # transport: # dashboard: localhost:8080 # 配置sentinel dashboard地址 # port: 8719 # 暴露的健康检查服务断点 management: endpoint: web: exposure: include: '*'
4、在流量控制面板中就可以进行流量控制了
方案二 使用nacos 实现流量控制
1、依赖不变
2、配置
spring: application: name: user # 服务名称 应用名称 cloud: nacos: discovery: server-addr: localhost:8848 # 配置注册中心的地址 #sentinel: # transport: # dashboard: localhost:8080 # 配置sentinel dashboard地址 # port: 8719 sentinel: datasource: ds1: nacos: server-addr: localhost:8848 dataId: ${spring.application.name}-sentinel.json groupId: DEFAULT_GROUP data-type: json rule-type: flow # 暴露的健康检查服务断点 management: endpoint: web: exposure: include: '*' server: port: 9991 debug: true
3、在nacos配置中新咋 user-sentinel.json 配置即可
如:
[ { "resource": "/getUser", "limitApp": "default", "grade": 1, "count": 1, "strategy": 0, "controlBehavior": 0, "clusterMode": false } , { "resource": "/getUser1", "limitApp": "default", "grade": 1, "count": 2, "strategy": 0, "controlBehavior": 0, "clusterMode": false } ]
标签:springboot,spring,nacos,alibaba,sentinel,com,cloud From: https://www.cnblogs.com/niun/p/17631928.html