SpringCloud-Alibaba-Sentinel-配置持久化策略

x33g5p2x  于2021-12-18 转载在 其他  
字(1.6k)|赞(0)|评价(0)|浏览(424)

前言:
Sentinel的如果没有配置持久化的话配置一些 流控 和服务降级 从启项目就会置空所以需要持久化的操作

动态规则扩展
拉模式:客户端主动向某个规则管理中心定期轮询拉取规则,这个规则中心可以是 RDBMS、文件,甚至是 VCS 等。这样做的方式是简单,缺点是无法及时获取变更;
推模式:规则中心统一推送,客户端通过注册监听器的方式时刻监听变化,比如使用 Nacos、Zookeeper 等配置中心。这种方式有更好的实时性和一致性保证

案例用Nacos

步奏:
pom
添加nacos 对sentinel管控的依赖

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

yml

server:
  port: 8092
spring:
  application:
    name: sentinel-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
    sentinel:
      transport:
        dashboard: localhost:8080 #配置Sentinel dashboard地址
        port: 8719
          datasource:
            ds1:
              nacos:
                # nacos连接地址
                server-addr: localhost:8848
                # 读取配置文件的名称 sentinel-8092
                dataId: sentinel-8092
                # nacos连接的分组默认
                groupId: DEFAULT_GROUP
                # 读取培训文件类型为json
                data-type: json
                rule-type: flow

新版yml配置文件上面因配置文件错位 启动报错 特此 修改 ,2020年12月22日特此记录

server:
  port: 8092
spring:
  application:
    name: sentinel-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
    sentinel:
      transport:
        dashboard: localhost:8080 #配置Sentinel dashboard地址
        port: 8719
      datasource:
          ds1:
            nacos:
              # nacos连接地址
              server-addr: localhost:8848
              # 读取配置文件的名称 sentinel-8092
              dataId: sentinel-8092
              # nacos连接的分组默认
              groupId: DEFAULT_GROUP
              # 读取培训文件类型为json
              data-type: json
              rule-type: flow

management:
  endpoints:
    web:
      exposure:
        include: '*'

配置nacos
json

resource:资源名称
limitApp:来源应用
grade:阈值类型,0表示线程数,1表示QPS
count:单机阈值
strategy:流控模式,0表示直接,1表示关联,2表示链路
controlBehavior:流控效果,0表示快速失败,1表示Warm Up,2表示排队等待
clusterMode:是否集群

[
    {
         "resource": "/select/test",
         "limitApp": "default",
         "grade":   1,
         "count":   1,
         "strategy": 0,
         "controlBehavior": 0,
         "clusterMode": false    
    }
]

从启项目请求一下就可了

哈哈 我自己都笑了

相关文章