【sentinel流量卫兵配置持久化到Nacos】

sentinel流量卫兵配置持久化到Nacos

概述:

控制台配置的参数,默认持久化到内存的,因此服务一旦重新启动后,配置就会丢失,需要重新配置。各位可以在默认情况下随意配置一个,然后重启服务即可验证。

这里持久化通过nacos配置中心进行。

一、添加配置

既然是通过nacos进行持久化,那么首先要做的就是将配置准备好写到nacos,这里配置的是熔断降级规则,如下:

二、配置说明

复制代码
resource:资源名(唯一名称,默认请求路径),对应sentinel控制台的(参考下图箭头)
count:熔断策略为慢调用比例:最大Rt(需要设置的阈值,超过该值则为慢应用),异常比例中为:比例阈值,异常数中为:异常数
grade:熔断策略(0:慢调用比例,1:异常比例,2:异常数)
slowRatioThreshold:比例阈值 (慢调用占所有的调用比率,范围[0~1])
timeWindow:熔断时长(在这段时间内发生熔断,拒绝所有请求)

DegradeRule,NacosDataSourceProperties源码,其它类型规则参考如下表格

限流规则配置:

属性 说明
app 应用名
resource 资源名(唯一名称,默认请求路径)
limitApp 针对来源 (Sentinel可以针对调用者进行限流,填写微服务名,指定对哪个微服务进行限流 ,默认default(不区分来源,全部限制))
grade 阈值类型(阀值类型,0:线程数,1:QPS)
count 单机阀值
clusterMode 是否集群(false:否,true:是)
controlBehavior 流控效果 (0:失败,1:warmUp,2:排队等待)
strategy 流控模式(0:直接,1:关联,2:链路)
clusterConfig thresholdType: 0

降级规则配置:

属性 说明
app 应用名
count 熔断策略为慢调用比例:最大Rt(需要设置的阈值,超过该值则为慢应用),异常比例中为:比例阈值,异常数中为:异常数
limitApp 针对来源 (Sentinel可以针对调用者进行限流,填写微服务名,指定对哪个微服务进行限流 ,默认default(不区分来源,全部限制))
grade 熔断策略(0:慢调用比例,1:异常比例,2:异常数)
minRequestAmount 最小请求数(允许通过的最小请求数,在该数量内不发生熔断)
timeWindow 熔断时长(在这段时间内发生熔断,拒绝所有请求)
slowRatioThreshold 比例阈值 (慢调用占所有的调用比率,范围[0~1])
resource 资源名(唯一名称,默认请求路径)
statIntervalMs 熔断时长(熔断时长,默认为1秒)

热点规则配置:

属性 说明
app 应用名
resource 资源名(唯一名称,默认请求路径)
limitApp 针对来源 (Sentinel可以针对调用者进行限流,填写微服务名,指定对哪个微服务进行限流 ,默认default(不区分来源,全部限制))
grade 限流模式(0:线程数,1:QPS)
count 单机阀值
durationInSec 统计窗口时间
clusterMode 是否集群(false:否,true:是)
paramIdx 参数索引
paramFlowItemList 参数例外项,可以针对指定的参数值单独设置限流阈值,不受前面 count 阈值的限制。仅支持基本类型
controlBehavior 流控效果,默认为0 (0:快速失败,1:warmUp,2:排队等待)
maxQueueingTimeMs 最大排队等待时长,默认0(仅在匀速排队模式生效)

授权规则配置:

属性 说明
app 应用名
resource 资源名
limitApp 流控应用(指调用方,多个调用方名称用半角英文逗号(,)分隔)
strategy 授权类型(0:白名单,1:黑名单)

系统规则配置:

属性 说明
app 应用名
highestSystemLoad 阈值(阈值类型为Load的阈值)[0,1)的正整数
avgRt 阈值(阈值类型为RT的阈值)所有入口流量的平均响应时间,[0,1)的正整数
maxThread 阈值(阈值类型为线程数的阈值)入口流量的最大并发数,[0,1)的正整数
qps 阈值 (阈值类型为入口 QPS的阈值)所有入口资源的 QPS,[0,1)的正整数
highestCpuUsage 阈值(阈值类型为CPU 使用率的阈值)[0,1]的小数,代表百分比

三、服务整合

1、服务导入依赖

xml 复制代码
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

注意版本问题,这里没有显示的指定版本,是因为在微服务顶级pom文件统一定义了

2、服务添加配置

3、发起验证

对配置的接口发起请求,查看控制台熔断规则(具体配置什么规则就查看什么规则)。然后重启服务再次发起,规则依然有效。

相关推荐
虾球xz14 分钟前
CppCon 2018 学习:THE MOST VALUABLE VALUES
开发语言·c++·学习
Seven9715 分钟前
了解GC吗?什么是GC?
java
Edingbrugh.南空30 分钟前
Flink ClickHouse 连接器维表源码深度解析
java·clickhouse·flink
掘金-我是哪吒1 小时前
分布式微服务系统架构第157集:JavaPlus技术文档平台日更-Java多线程编程技巧
java·分布式·微服务·云原生·架构
飞翔的佩奇1 小时前
Java项目:基于SSM框架实现的忘忧小区物业管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告】
java·数据库·mysql·vue·毕业设计·ssm框架·小区物业管理系统
阿蒙Amon1 小时前
C#扩展方法全解析:给现有类型插上翅膀的魔法
开发语言·c#
RainbowSea1 小时前
跨域问题(Allow CORS)解决(3 种方法)
java·spring boot·后端
掘金-我是哪吒1 小时前
分布式微服务系统架构第155集:JavaPlus技术文档平台日更-Java线程池实现原理
java·分布式·微服务·云原生·架构
RainbowSea1 小时前
问题 1:MyBatis-plus-3.5.9 的分页功能修复
java·spring boot·mybatis
尘浮7281 小时前
60天python训练计划----day59
开发语言·python