SpringCloud-Alibaba-Sentinel-配置持久化策略代码解析

作者:袖梨 2021-03-11

本篇文章小编给大家分享一下SpringCloud-Alibaba-Sentinel-配置持久化策略代码解析,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

前言:

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

动态规则扩展

拉模式:客户端主动向某个规则管理中心定期轮询拉取规则,这个规则中心可以是 RDBMS、文件,甚至是 VCS 等。这样做的方式是简单,缺点是无法及时获取变更;

推模式:规则中心统一推送,客户端通过注册监听器的方式时刻监听变化,比如使用 Nacos、Zookeeper 等配置中心。这种方式有更好的实时性和一致性保证

案例用Nacos

步奏:

pom

添加nacos 对sentinel管控的依赖


 com.alibaba.csp
 sentinel-datasource-nacos

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 
 }
]

从启项目请求一下就可了

相关文章

精彩推荐