本文总结了Alibaba Sentinel各种规则的参数。

基于Sentinel 1.6.2编写,未来如果本文不再适用,可自行点击每一节 参考 一览的链接前往查看如何配置。

一、流控规则

1.1 配置

1.2 参数

Field

说明

默认值resource

资源名,资源名是限流规则的作用对象

count

限流阈值

grade

限流阈值类型,QPS 或线程数模式

QPS 模式

limitApp

流控针对的调用来源

default,代表不区分调用来源

strategy

判断的根据是资源自身,还是根据其它关联资源 (refResource),还是根据链路入口

根据资源本身

controlBehavior

流控效果(直接拒绝 / 排队等待 / 慢启动模式)

直接拒绝

1.3 代码配置示例

private void initFlowQpsRule() {

List rules = new ArrayList<>();

FlowRule rule = new FlowRule(resourceName);

// set limit qps to 20

rule.setCount(20);

rule.setGrade(RuleConstant.FLOW_GRADE_QPS);

rule.setLimitApp("default");

rules.add(rule);

FlowRuleManager.loadRules(rules);

}

1.4 参考:https://github.com/alibaba/Sentinel/wiki/如何使用#流量控制规则-flowrule

1.5 参考:流量控制

二、降级规则

2.1 配置

2.2 参数

Field

说明

默认值resource

资源名,即限流规则的作用对象

count

阈值

grade

降级模式,根据 RT 降级还是根据异常比例降级

RT

timeWindow

降级的时间,单位为 s

2.3 代码配置示例

private void initDegradeRule() {

List rules = new ArrayList<>();

DegradeRule rule = new DegradeRule();

rule.setResource(KEY);

// set threshold RT, 10 ms

rule.setCount(10);

rule.setGrade(RuleConstant.DEGRADE_GRADE_RT);

rule.setTimeWindow(10);

rules.add(rule);

DegradeRuleManager.loadRules(rules);

}

2.4 参考:https://github.com/alibaba/Sentinel/wiki/如何使用#熔断降级规则-degraderule

三、热点规则

3.1 配置

3.2 参数

属性

说明

默认值resource

资源名,必填

count

限流阈值,必填

grade

限流模式

QPS 模式

durationInSec

统计窗口时间长度(单位为秒),1.6.0 版本开始支持

1s

controlBehavior

流控效果(支持快速失败和匀速排队模式),1.6.0 版本开始支持

快速失败

maxQueueingTimeMs

最大排队等待时长(仅在匀速排队模式生效),1.6.0 版本开始支持

0ms

paramIdx

热点参数的索引,必填,对应 SphU.entry(xxx, args) 中的参数索引位置

paramFlowItemList

参数例外项,可以针对指定的参数值单独设置限流阈值,不受前面 count 阈值的限制。仅支持基本类型

clusterMode

是否是集群参数流控规则

false

clusterConfig

集群流控相关配置

3.3 代码配置示例

ParamFlowRule rule = new ParamFlowRule(resourceName)

.setParamIdx(0)

.setCount(5);

// 针对 int 类型的参数 PARAM_B,单独设置限流 QPS 阈值为 10,而不是全局的阈值 5.

ParamFlowItem item = new ParamFlowItem().setObject(String.valueOf(PARAM_B))

.setClassType(int.class.getName())

.setCount(10);

rule.setParamFlowItemList(Collections.singletonList(item));

ParamFlowRuleManager.loadRules(Collections.singletonList(rule));

3.4 参考:https://github.com/alibaba/Sentinel/wiki/热点参数限流

四、系统规则

4.1 配置

4.2 参数

Field

说明

默认值highestSystemLoad

最大的 load1

-1 (不生效)

avgRt

所有入口流量的平均响应时间

-1 (不生效)

maxThread

入口流量的最大并发数

-1 (不生效)

qps

所有入口资源的 QPS

-1 (不生效)

4.3 代码配置示例

private void initSystemRule() {

List rules = new ArrayList<>();

SystemRule rule = new SystemRule();

rule.setHighestSystemLoad(10);

rules.add(rule);

SystemRuleManager.loadRules(rules);

}

4.4 参考:https://github.com/alibaba/Sentinel/wiki/如何使用#系统保护规则-systemrule

五、授权规则

5.1 配置

5.2 参数

Field

说明

默认值resource

资源名,即限流规则的作用对象

-

limitApp

对应的黑名单/白名单,不同 origin 用 , 分隔,如 appA,appB

default,代表不区分调用来源

strategy

限制模式,AUTHORITY_WHITE 为白名单模式,AUTHORITY_BLACK 为黑名单模式,默认为白名单模式

AUTHORITY_WHITE

5.3 代码配置示例

AuthorityRule rule = new AuthorityRule();

rule.setResource("test");

rule.setStrategy(RuleConstant.AUTHORITY_WHITE);

rule.setLimitApp("appA,appB");

AuthorityRuleManager.loadRules(Collections.singletonList(rule));

5.4 参考:https://github.com/alibaba/Sentinel/wiki/如何使用#访问控制规则-authorityrule

·································

1命名规则 sentinel_Alibaba Sentinel 规则参数总结相关推荐

  1. Sentinel热点参数规则说明

    前言 当经常访问的数据过热时,可以对其访问进行限流.例如:针对一段时间内的特定的用户.城市等进行限制.可以优先用于redis热点key的限流中. 另:本文只做规则说明,实战时可做参考,源码解析部分详见 ...

  2. java xml 推模式 拉模式_Alibaba Sentinel规则持久化-推模式-手把手教程(基于Nacos)...

    点击上方"IT牧场",选择"设为星标"技术干货每日送达! 一.推模式架构图 TIPS 图片来自官方. 引用自 https://github.com/alibab ...

  3. Sentinel 规则持久化到 apollo 配置中心

    Sentinel 规则默认是存储在内存中的,只要服务重启之后对应的规则也会消失,实际的生产中肯定是不允许这种操作,因此 Sentinel 官方推荐在生产架构中使用第三方数据源作为永久存储中心,比如 n ...

  4. Alibaba Sentinel规则持久化-推模式-手把手教程【基于Nacos】

    前面,已经为Sentinel实现了 基于拉模式的规则持久化 ,本文来实现基于 推模式的规则持久化. 文章目录 一.推模式架构图 二.原理简述 三.微服务改造 3.1. 加依赖 3.2. 添加配置 四. ...

  5. Alibaba Sentinel规则持久化-拉模式-手把手教程【基于文件】

    文章目录 一.拉模式架构 二.原理简述 三.编写 3.1 加依赖 3.2 写代码 3.3 配置 四.优缺点分析 五.你可能会有的疑问 六.参考文档 七.案例测试 7.1. 添加流控规则 7.2. 服务 ...

  6. sentinel 1.8. 2持久化Nacos动态规则热点规则和授权规则不生效的问题

    sentinel 1.8.2 持久化Nacos动态规则热点规则和授权规则不生效的问题 问题:规则持久化到nacos之后,我在本地测试时候只有热点和授权规则不生效,我慢慢的在客户端sentinel-cs ...

  7. 示例Express中路由规则及获取请求参数

    本次给大家分享一篇基于express中路由规则及获取请求参数的方法,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. express中常见的路由规则 ...

  8. junit规则_jUnit:规则

    junit规则 规则在测试,测试用例或测试套件周围增加了特殊处理. 他们可以对该类中的所有测试执行通用的其他验证,并发运行多个测试实例,在每个测试或测试用例之前设置资源,然后在之后拆除它们. 该规则可 ...

  9. Altium designer (AD)中如何设置区域规则和器件规则

    Altium designer 如何设置区域规则和器件规则 下面为大家介绍下区域(room)规则 打开altium designer软件,在设置Design>>Rooms 根据自己的要求, ...

最新文章

  1. 跟风 Python 的人,后来都怎样了?
  2. linux下的sort、uniq、join的使用
  3. python如何获取信息_如何使用Python获取系统信息?
  4. Linux C: IO库函数,文件流缓冲,变参函数
  5. 高效开发者是如何个性化VS Code插件与配置的?
  6. 对jvm 同步锁的理解
  7. 中国数学会副理事长田刚委员:建议从四个方面加强教师队伍建设
  8. datatable select 性能
  9. 实验3 OpenGL几何变换
  10. BZOJ 4241 历史研究
  11. IT技能图谱(图谱+干货)
  12. tl494cn逆变器电路图_用TL494制作的逆变电源
  13. 程序员年薪45万,国企年薪20万,该不该跳槽去国企?
  14. WPS自动生成目录,目录里显示图片如何解决
  15. 大连八中学2021年高考成绩查询,2021年大连各高中高考成绩排名及放榜最新消息...
  16. Hiveserver2源码剖析---如何实现代理用户
  17. mysql 原子操作
  18. 章鱼哥APp到底怎么赚钱?为什么滴滴公司会和它进行合作?
  19. 心血来潮在Linux上想整理普通用户,使用命令删除后,发现它还在?
  20. batT脚本如何自动执行 adb shell 以后的命令(android抓包)

热门文章

  1. 我的nginx iis 负载均衡学习(环境搭建)
  2. 我的家庭私有云计划-2
  3. HSRP的初步解析及典型应用2
  4. Asp.net2.0水晶报表的一些示例源码
  5. 前端网页广告无线翻滚_从小白到web前端工程师进阶之路 从0到1到更深
  6. python迭代器与生成器答案_史上最全 Python 迭代器与生成器
  7. 简述计算机图形的图形应用主要有哪些,5计算机图形学考试简答题复习.doc
  8. python元组为什么不可变_为什么python字符串和元组是不可变的?
  9. python map函数的作用_Python的map函数
  10. git rebase用法_Git入门实战