sentinel使用nacos存储规则

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y6EIZiD1-1633060756848)(C:\Users\火星\Desktop\sentinel\nacos.png)]

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控制台,(第一次需要访问接口一次)就能看到和项目名称对应的菜单了。这个时候还是没有流控规则的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0AvlEucg-1633060756849)(C:\Users\火星\Desktop\sentinel\没有流控规则的.png)]

5.在nacos中配置限流规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2trPCFyy-1633060756851)(C:\Users\火星\Desktop\sentinel\限流规则.png)]

{
    "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)
7. 验证规则是否生效

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cPONZFF7-1633060756853)(C:\Users\火星\Desktop\sentinel\验证.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值