java '-Dserver.port=7777' '-Dcsp.sentinel.dashboard.server=localhost:7777' '-Dproject.name=sentinel-dashboard' -jar .sentinel-dashboard.jar
-
Dcsp.sentinel.dashboard.server 指定端口号
-
-Dproject.name 指定名称
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dph0Gppl-1633060756846)(C:Users火星Desktopsentinel微信截图_20210930211949.png)]](https://img-blog.csdnimg.cn/28905f2e61064010803860c442e7b189.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Gr5pif5bq45Lq6,size_20,color_FFFFFF,t_70,g_se,x_16)2.下载安装nacos 1. 在github下载最新的nacos的最新版本 Releases · alibaba/nacos · GitHub 2. 进入根目录 执行mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U命令构建项目 3. 执行cd distributiontargetnacos-server-2.0.2nacosbin命令 运行startup.cmd启动
4. 启动后浏览器访问http://127.0.0.1:8848/nacos/index.html 账号密码都是nacos 3.项目集成nacos和sentinel 1. 新建springboot项目,在pom中添加以下依赖直接启动可能会报错,需要修改启动脚本里面的mode为standalone
set MODE=“standalone”
2. 新建controllerorg.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-dependencies Greenwich.SR2 pom import com.alibaba.cloud spring-cloud-starter-alibaba-sentinel 2.1.1.RELEASE com.alibaba.csp sentinel-datasource-nacos 1.7.0
```java
@RestController
public class DynamicController {
@GetMapping("/dynamic")
public String dynamic(){
return "Return rule";
}
}
```
3.设置配置文件 application.properties
第一次是用的yml格式的配置文件,但是连接不上nacos。后面用properties类型的配置文件就可以连上了。
spring.application.name=sentinel-nacos server.port=8080 # sentinel-dashboard的访问地址 spring.cloud.sentinel.transport.dashboard=http://127.0.0.1:7777 # nacos的访问地址 spring.cloud.sentinel.datasource.ds.nacos.server-addr=192.168.1.2:8848 # nacos 数据id spring.cloud.sentinel.datasource.ds.nacos.data-id=spring-cloud-sentinel-dynamic-sentinel-flow # nacos 分组 spring.cloud.sentinel.datasource.ds.nacos.group-id=DEFAULT_GROUP # 定义规则类型为限流 spring.cloud.sentinel.datasource.ds.nacos.rule-type=flow4.启动项目,打开sentinel-dashboard控制台,(第一次需要访问接口一次)就能看到和项目名称对应的菜单了。这个时候还是没有流控规则的 5.在nacos中配置限流规则
{
"resource":"/dynamic",
"limitApp":"default",
"grade":1,
"count":1,
"strategy":0,
"controlBehavior":0,
"clusterMode":false
}
-
resource: 资源名称(就是需要限流的接口名称)
-
limitApp:流控针对的调用来源
-
grade: 限流阈值类型(QPS或并发线程数)0表示根据并发数来限流 1表明根据QPS来进行限流
-
count: 限流阈值
-
strategy: 调用关系限流策略
-
controlBehavior: 流量控制效果(直接拒绝、Warm UP、匀速排队)
-
clusterMode:是否为集群模式
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PEhLyOK1-1633060756852)(C:Users火星Desktopsentinel有流控规则.png)]](https://img-blog.csdnimg.cn/3c1a3ea5dee14872a4d2b852b46fa40f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Gr5pif5bq45Lq6,size_20,color_FFFFFF,t_70,g_se,x_16)7. 验证规则是否生效



