Sentinel限流、降级配置详解
安装Sentinel
- 下载sentinel-dashboard-1.8.2.jar
- 安装有jdk环境,8080端口未被占用
- 在jar包所在目录打开cmd,输入命令启动:java -jar sentinel-dashboard-1.8.2.jar
- 浏览器访问sentinel的web控制台,用户名和密码是sentinel:http://localhost:8080/
限流:流控模式
直接
当我们监控到请求后,在请求下面,点击流控规则 --> 新增流控规则;资源名为接口映射路径

以上选择QPS+单机阈值表示每秒钟请求超过阈值后,直接失败;若选择线程数+单机阈值表示当线程数达到阈值时限流;区别:选择QPS,达到阈值后就不能请求了,选择线程数,达到阈值后依然可以请求,但请求会一直堵着
关联:
A请求关联B请求,当B请求达到阈值后会限制A请求

链路:
业务层有一个方法getOrder,控制层有两个方法test1、test2都调用了getOrder方法,当getOrder请求数达到阈值,限制test1的请求,test2依然可请求

详情可参考:https://blog.csdn.net/Ezerbel/article/details/107919230
限流:流控效果
- 快速失败:请求数超过阈值后,返回错误信息
- Warm Up(预热):

单机阈值/3=初始时每秒的处理数量;以上表示最初每秒能处理3条请求,经过预热时长5秒后每秒能处理10条 - 排队:
指定每秒能处理的请求数,超出阈值后的请求将继续等待,等待时间为 <超时时间ms>

降级
平均响应时间:
序号1表示选择平均响应时间策略,序号2表示阈值,序号3表示熔断时间

以上表示:访问testD请求,平均响应时间表示1秒处理5个请求,序号2表示200ms处理5条,导致处理不了;且每秒访问testD请求超过5条,两个条件同时满足时,会触发服务降级熔断1秒;1秒过后,关闭降级

Sentinel 1.7.0才有平均响应时间(DEGRADE_GRADE_RT),Sentinel 1.8.0的没有这项,取而代之的是慢调用比例
异常比例:
访问testD请求,每秒请求数大于5条,且每秒出现异常的比例大于0.2,则触发降级


若在一秒内发送一条请求,这条请求会出异常,这时每秒请求数小于5,异常比例100%超出阈值,就不会触发降级,而是返回一个错误页面异常数:
每分钟访问的请求中,出现异常的数量超过阈值5则触发降级

- 降级是请求超时或出现异常时能返回提示信息或有执行备用的方法,返回Blocked by Sentinel (flow limiting)是sentinel默认提示信息
热点参数限流
统计某个请求访问时传入的参数,当该参数达到阈值则进行限流
热点key限流案例:
编写方法接口/testHotKey,@SentinelResource中指定资源名和兜底的方法

在sentinel请求下面,点击热点规则 --> 新增热点限流规则;参数索引0表示该请求的第一个参数p1

以上表示访问/testHotkey同时传入参数p1,每秒访问次数超过阈值1则执行兜底的方法

以上表示:访问该请求且传入第一个参数,访问次数超过阈值则执行兜底的方法,如果第一个参数的值等于5,每秒访问达到200才执行兜底的方法
只有sentinel页面配置的限流规则才能触发降级,方法本身的异常不能触发降级
系统规则:

系统规则是限流系统所有的请求访问,例如访问系统的请求总数不能超过阈值,或系统的cup使用率不能超过指定值
Sentinel限流、降级配置详解的更多相关文章
- Gateway的限流重试机制详解
前言 想要源码地址的可以加上此微信:Lemon877164954 前面给大家介绍了Spring Cloud Gateway的入门教程,这篇给大家探讨下Spring Cloud Gateway的一些其 ...
- 限流降级神器,带你解读阿里巴巴开源 Sentinel 实现原理
Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度来帮助用户保护服务的稳定性. 大家可能会问:Se ...
- 5-4 Sentinel 限流_流控与降级
Sentinel 介绍 什么是Sentinel Sentinel也是Spring Cloud Alibaba的组件 Sentinel英文翻译"哨兵\门卫" 随着微服务的流行,服务和 ...
- 实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解
注意:这里不会讲到nginx流媒体模块如何安装的问题,只研究rtmp,hls直播和录制相关的nginx服务器配置文件的详细用法和说明.可以对照这些命令详解配置nginx -rtmp服务 一.nginx ...
- Sentinel限流实现原理
Sentinel限流的神秘面纱: 之前我们学习过限流比较主流的三种算法:漏桶,令牌桶,滑动窗口.而Sentinel采用的是最后一种,滑动窗口来实现限流的. 通过对Sentinel基础Api的使用,我们 ...
- Spring Cloud Alibaba 之 Sentinel 限流规则和控制台实例
这一节我们通过一个简单的实例,学习Sentinel的基本应用. 一.Sentinel 限流核心概念 在学习Sentinel的具体应用之前,我们先来了解一下Sentinel中两个核心的概念,资源和规则. ...
- Log4j配置详解(转)
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- logback 常用配置详解<appender>
logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...
- logback配置详解2<appender>
logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...
随机推荐
- K8S系列第三篇(Docker网络)
目录 docker 网络 Docker 的四种网络模 一.网络基础 1.网络名称空间介绍 2.创建一个命名空间 1)Veth设备对 2)Veth设备操作 1> 创建Veth设备对 2> 绑 ...
- (opencv09)cv2.getStructuringElement()构造卷积核
(opencv09)cv2.getStructuringElement()构造卷积核 rectkernel = cv2.getStructuringElement(shape, ksize, anch ...
- Python实用案例,Python脚本,Python实现每日更换“必应图片”为“桌面壁纸”
往期回顾 Python实现自动监测Github项目并打开网页 Python实现文件自动归类 Python实现帮你选择双色球号码 前言: 今天我们就利用python脚本实现每日更换"必应图片& ...
- java构造器级简单内存分析
java构造器的使用(基础篇) 构造方法也叫构造器,是创建对象时执行的特殊方法,一般用于初始化新对象的属性. 基本定义语法: 访问控制符 构造方法名([参数列表]){ 方法体 } 注:"访问 ...
- etcd raft 处理流程图系列1-raftexample
最近在看raft相关的代码和实现,发现etcd的raft模块在实现上还是比较灵活的,但缺点就是需要用户实现比较多的功能,如存储和网络等,同时带来的优点就是不会对用户的存储和传输作限制.网上对该模块的描 ...
- 【FATE】设置虚拟机固定IP以及免密登录
一.前期准备 1.VMWare上新建三个Centos7的虚拟机 2.VMWare虚拟机的三种联网方式 1.桥接模式 -- 桥接: 默认使用VMnet0 这一种联网方式最简单,在局域网内,你的主机是怎么 ...
- 百度地图API基本使用(一)
本文系作者 chaoCode原创,转载请私信并在文章开头附带作者和原文地址链接. 违者,作者保留追究权利. 前言 由于最近项目有需要,所以最近开始研究百度地图API的使用,简单的介绍一下百度地图Jav ...
- docker版LAMP(PHP+MYSQL+APACHE)配置
最近在搭测试环境,一开始就在vagant和docker之间来回折腾.两者其实都非常适合用来搭开发环境:但最终让我决定用Docker的原因是因为Vagant在hyper-v下出现了一些奇怪的问题,所以D ...
- pycharm配置selenium碰到的问题
Inherit global site-packages: 导入本地包 Make available to all projects : 使所有项目都可用 chromedriver的版本一定要与Chr ...
- VS2019 +MySQL+EntityFramework 使用配置与坑点避免随记
一.安装运行环境 首先我们到mysql的官方网站上下载 mysql-installer-community-8.0.26.0 ,或者其他特定版本,通过它我们可以先将 mysql-for-visuals ...