当前位置: 首页 > news >正文

Sentinel 熔断规则 (DegradeRule)

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。

Springboot+Dubbo+Nacos 集成 Sentinel(入门)-CSDN博客

1. 熔断规则介绍

现在微服务架构都是分布式的,由非常多的服务组成。不同服务之间相互调用,组成复杂的调用链路。复杂链路上的某一环不稳定,就可能会层层级联,最终导致整个链路都不可用。因此我们需要对不稳定的弱依赖服务调用进行熔断降级,暂时切断不稳定调用,避免局部不稳定因素导致整体的雪崩。熔断降级作为保护自身的手段,通常在客户端(调用端)进行配置。

熔断降级规则包含下面几个重要的属性:

Field说明默认值
resource资源名,即规则的作用对象
grade熔断策略,支持慢调用比例/异常比例/异常数策略慢调用比例
count慢调用比例模式下为慢调用临界 RT(超出该值计为慢调用);异常比例/异常数模式下为对应的阈值
timeWindow熔断时长,单位为 s
minRequestAmount熔断触发的最小请求数,请求数小于该值时即使异常比率超出阈值也不会熔断(1.7.0 引入)5
statIntervalMs统计时长(单位为 ms),如 60*1000 代表分钟级(1.8.0 引入)1000 ms
slowRatioThreshold慢调用比例阈值,仅慢调用比例模式有效(1.8.0 引入)

同一个资源可以同时有多个降级规则。

2.资源名称(resource

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

3.熔断策略(grade)

熔断策略,支持慢调用比例/异常比例/异常数策略。

慢调用比例 (SLOW_REQUEST_RATIO):选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。


异常比例 (ERROR_RATIO):当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。


异常数 (ERROR_COUNT):当单位统计时长内的异常数目超过阈值之后会自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。

4.比例阈值(count)

慢调用比例模式下为慢调用临界 RT(超出该值计为慢调用);异常比例/异常数模式下为对应的阈值

5.熔断时长(timeWindow)

熔断时长,单位为 s。

6.最小请求数(minRequestAmount)

熔断触发的最小请求数,请求数小于该值时即使异常比率超出阈值也不会熔断(1.7.0 引入)

7.统计时长(statIntervalMs)

统计时长(单位为 ms),如 60*1000 代表分钟级(1.8.0 引入)。

8.最大RT (slowRatioThreshold)

慢调用比例阈值,仅慢调用比例模式有效(1.8.0 引入)。

Sentinel 规则持久化-CSDN博客

持久化Json数据格式

[{"resource": "/api/user/getName","limitApp": "default","count": 1,"timeWindow": 5,"grade": 0,"minRequestAmount": 3,"statIntervalMs": 1000,"slowRatioThreshold": 0.5}
]

相关文章:

  • 基于spring gateway 的静态资源缓存实现
  • 求臻医学张怡然博士,肿瘤基因检测“解码之旅”的践行者
  • 酷开会员 | 酷开系统壁纸模式,感受无法言说的灵魂震颤
  • Golang之火爆原因
  • 【原创】java+swing+mysql通讯录管理系统设计与实现
  • CSS样式穿透
  • 人脸106和240点位检测解决方案
  • 力扣labuladong一刷day11拿下打家劫舍问题共3题
  • 【AI视野·今日Robot 机器人论文速览 第六十五期】Mon, 30 Oct 2023
  • 除了chatGPT网站外,国内有些可以使用的AI网站 文心一言 讯飞星火 豆包 通义千问 人工智能网站 AI网站
  • 爱上C语言:操作符详解(下)
  • 软路由R4S+iStoreOS实现公网远程桌面局域网内电脑
  • Python中神奇的「type」,即可查看类型,又可以创建对象
  • Postman:API测试之Postman使用完全指南
  • [Python学习笔记]Requests性能优化之Session
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • [译] React v16.8: 含有Hooks的版本
  • 「面试题」如何实现一个圣杯布局?
  • Angularjs之国际化
  • CentOS 7 修改主机名
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • js中的正则表达式入门
  • Netty源码解析1-Buffer
  • node学习系列之简单文件上传
  • python docx文档转html页面
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • Vue--数据传输
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 检测对象或数组
  • 利用jquery编写加法运算验证码
  • 前言-如何学习区块链
  • 如何学习JavaEE,项目又该如何做?
  • 微服务入门【系列视频课程】
  • 我的面试准备过程--容器(更新中)
  • (4)(4.6) Triducer
  • (C语言)共用体union的用法举例
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (三)模仿学习-Action数据的模仿
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)Linux下编译安装log4cxx
  • (转)linux下的时间函数使用
  • (转载)从 Java 代码到 Java 堆
  • (轉貼) UML中文FAQ (OO) (UML)
  • *Django中的Ajax 纯js的书写样式1
  • .net wcf memory gates checking failed
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .net 生成二级域名
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈