1.下载安装sentinel-dashboard
1. 去github下载源码 GitHub - alibaba/Sentinel at release-1.8
2. 下载后进入sentinel-dashboard目录 执行mvn clean packge 命令打包
3. 执行下面命令启动sentinel-dashboard (在PowerShell里面参数需要加单引号,否则启动不起来)
java '-Dserver.port=7777' '-Dcsp.sentinel.dashboard.server=localhost:7777' '-Dproject.name=sentinel-dashboard' -jar .\sentinel-dashboard.jar
-
Dcsp.sentinel.dashboard.server 指定端口号
-
-Dproject.name 指定名称
4. 启动后浏览器访问localhost:7777 账号、密码 都是 sentinel
![\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dph0Gppl-1633060756846)(C:\Users\火星\Desktop\sentinel\微信截图_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 distribution\target\nacos-server-2.0.2\nacos\bin命令 运行startup.cmd启动
直接启动可能会报错,需要修改启动脚本里面的mode为standalone
set MODE=“standalone”
4. 启动后浏览器访问http://127.0.0.1:8848/nacos/index.html 账号密码都是nacos
3.项目集成nacos和sentinel
1. 新建springboot项目,在pom中添加以下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- sentinel 包 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<!-- sentinel-nacos 整合包 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<version>1.7.0</version>
</dependency>
2. 新建controller
```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=flow
4.启动项目,打开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:是否为集群模式
6. 现在可以在sentinel-dashboard中看到nacos里面配置的规则了
![\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PEhLyOK1-1633060756852)(C:\Users\火星\Desktop\sentinel\有流控规则.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)