基于Sentinel的微服务保护
前言
Sentinel是Alibaba开源的一款微服务流控组件,用于解决分布式应用场景下服务的稳定性问题。Sentinel具有丰富的应用场景,它基于流量提供一系列的服务保护措施,例如多线程秒杀情况下的系统承载,并发访问下的流量控制,实时熔断等。
Sentinel的特征
- 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
- 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
- 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
- 完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
Sentinel解决雪崩问题
什么是雪崩
在分布式应用架构中,服务间的关系错综复杂,一个服务往往依赖多个其他服务,如果其中一个服务发生了故障,那么依赖于当前服务的服务也会被阻塞,以此类推下去,就算其他服务没有直接的依赖于故障服务,也会受到影响,最终导致雪崩,因此雪崩问题是指微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。
。
怎样解决雪崩问题
1.超时处理
为请求设定超时时间,当请求超过一定时间没有被响应时,直接返回错误信息。这种方式依然会占用一部分的时间。
2.舱壁模式
为每个业务逻辑设定一定线程数,这样一来,在服务阻塞的时候,就只会占用有限的资源,而不会将消耗全部资源。该模式也叫线程隔离。
3.断路器
由断路器统计业务执行的异常比例,如果超出阈值会熔断该业务,拦截访问该业务的一切请求
4.限流
限流是指限制业务访问的QPS,避免服务因为突增的流量而故障
QPS:每秒能够处理的请求数
总结
上述解决雪崩问题的措施可以分为两类:
1.预防
限流就是一种预防措施,它在检测高并发访问时,采取措施,从而使当前服务不受影响
2.补救
超时处理,线程隔离,熔断都是补救措施,这个时候服务已经受到了影响,后续操作只是将影响控制在一定范围内。
Sentinel安装使用
1.下载
sentinel官方提供了UI控制台,方便我们对系统做限流设置。可以在GitHub下载。
2.运行
将jar包放到任意非中文目录,执行命令:
java -jar sentinel-dashboard-1.8.1.jar
3.访问
访问http://localhost:8080页面,就可以看到sentinel的控制台了:
需要输入账号和密码,默认都是:sentinel


由于Sentinel采取懒加载,而我们还没有整合微服务,因此这个时候控制台上还什么都没有
Sentinel整合微服务
1.在pom文件中加入Sentinel依赖

2.修改application配置文件

这里如果是properties文件l应该是 spring.cloud.sentinel.transport.dashboard = localhost:8080,我上面也没写spring,是因为还有nacos在它上面
3.访问该服务中的任意端点
用postman发送请求,出发Sentinel监控


流量控制
雪崩问题虽然有四种方案,但是限流是避免服务因突发的流量而发生故障,是对微服务雪崩问题的预防。所以这里主要说的就是流量控制啦。
簇点链路
刚刚我们在访问任意资源后,Sentinel控制台中就显示了一个调用信息,其中过程是 请求进入微服务后,首先访问DispatcherServlet,然后进入Controller,Service,Mapper,这样的调用链就叫做簇点链路。簇点链路中被监控的每一个接口都是一个资源。

如果需要设置某项规则,可以点击链路后的按钮。
示例
step1:对我们刚刚访问过的资源,新增一条流控规则,设置QPS为5,即每秒最多响应5个请求

新增后可以在流控规则中查看到刚刚增加的流控规则

2、使用jmeter进行测试
2.1先把jmeter跑起来,找到文件夹bin目录下的jmeter.bat双击就🆗了

2.2创建一个测试线程组


2.3右击线程组,创建HTTP请求


2.4右击线程组,创建结果树

2.5 Sentinel查看结果

流控模式
流控模式有三种,在设置流控规则的时候,可以点击高级选项进行设置
直接模式
统计当前资源的请求,触发阈值时对当前资源直接限流,也是默认的模式
关联模式
统计与当前资源相关的另一个资源,触发阈值时,对当前资源限流
使用场景:比如用户支付时需要修改订单状态,同时用户要查询订单。查询和修改操作会争抢数据库锁,产生竞争。业务需求是优先支付和更新订单的业务,因此当修改订单业务触发阈值时,需要对查询订单业务限流。
链路模式
统计从指定链路访问到本资源的请求,触发阈值时,对指定链路限流
使用场景:比如有查询订单和创建订单业务,两者都需要查询商品。针对从查询订单进入到查询商品的请求统计,并设置限流。
流控效果
在流控的高级选项中,还有一个流控效果选项:
流控效果是指请求达到流控阈值时应该采取的措施,包括三种:
快速失败
达到阈值后,新的请求会被立即拒绝并抛出FlowException异常。是默认的处理方式。
warm up
预热模式,对超出阈值的请求同样是拒绝并抛出异常。但这种模式阈值会动态变化,从一个较小值逐渐增加到最大阈值。在一个服务刚刚启动时,一切资源尚未初始化(冷启动),如果直接将QPS跑到最大值,可能导致服务瞬间宕机。而warm up也叫预热模式,是应对服务冷启动的一种方案。请求阈值初始值是 maxThreshold / coldFactor,持续指定时长后,逐渐提高到maxThreshold值。而coldFactor的默认值是3.
例如,我设置QPS的maxThreshold为10,预热时间为5秒,那么初始阈值就是 10 / 3 ,也就是3,然后在5秒后逐渐增长到10
排队等待
让所有的请求按照先后次序排队执行,两个请求的间隔不能小于指定时长。当请求超过QPS阈值时,快速失败和warm up 会拒绝新的请求并抛出异常。而排队等待则是让所有请求进入一个队列中,然后按照阈值允许的时间间隔依次执行。后来的请求必须等待前面执行完成,如果请求预期的等待时间超出最大时长,则会被拒绝。
总结
关于Sentinel流控组件的介绍就到这里,感谢收看,再见啦~
相关文章:
基于Sentinel的微服务保护
前言 Sentinel是Alibaba开源的一款微服务流控组件,用于解决分布式应用场景下服务的稳定性问题。Sentinel具有丰富的应用场景,它基于流量提供一系列的服务保护措施,例如多线程秒杀情况下的系统承载,并发访问下的流量控制ÿ…...
Collectors类作用:
一、Collectors类: 1.1、Collectors介绍 Collectors类,是JDK1.8开始提供的一个的工具类,它专门用于对Stream操作流中的元素各种处理操作,Collectors类中提供了一些常用的方法,例如:toList()、toSet()、to…...
LASSO回归
LASSO回归 LASSO(Least Absolute Shrinkage and Selection Operator,最小绝对值收敛和选择算子算法)是一种回归分析技术,用于变量选择和正则化。它由Robert Tibshirani于1996年提出,作为传统最小二乘回归方法的替代品。 损失函数 1.线性回…...
机器学习中的 K-均值聚类算法及其优缺点。
K-均值聚类算法是一种常见的无监督学习算法,它可以将数据集分成 K 个簇,每个簇内部的数据点尽可能相似,而不同簇之间的数据点应尽可能不同。下面详细讲解 K-均值聚类算法的优缺点: 优点: 简单易用:K-均值…...
云计算与虚拟化
一、概念 什么是云计算? 云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果…...
Linux常见进程类别
目录 常见进程类别 守护进程&精灵进程 任务管理 进程组 作业 作业 | 进程组 会话 w命令 守护进程 守护进程的创建 setsid()函数 daemon()函数 模拟实现daemon函数 前台进程 | 后台进程 僵尸进程 | 孤儿进程 僵尸进程的一些细节 守护进程 | 后台进程 守护…...
智能小车之蓝牙控制并测速小车、wife控制小车、4g控制小车、语音控制小车
目录 1. 蓝牙控制小车 2. 蓝牙控制并测速小车 3. wifi控制测速小车 4. 4g控制小车 5. 语音控制小车 1. 蓝牙控制小车 使用蓝牙模块,串口透传蓝牙模块,又叫做蓝牙串口模块 串口透传技术: 透传即透明传送,是指在数据的传输过…...
指针进阶(一)
指针进阶 1. 字符指针面试题 2. 指针数组3. 数组指针3.1 数组指针的定义3.2 &数组名VS数组名 3.3 数组指针的使用4. 数组传参和指针传参4.1 一维数组传参4.2 二维数组传参4.3 一级指针传参4.4 二级指针传参 前言 指针的主题,我们在初级阶段的《指针》章节已经接…...
c# sql 判断表中是否包含指定字段
你可以使用以下方法来判断一个 SQL 数据库中的表是否包含指定的字段。 首先,你需要连接到数据库,然后执行一条 SQL 查询语句来检查表结构。你可以使用 SELECT 语句和 INFORMATION_SCHEMA.COLUMNS 系统视图来获取表中的所有列信息。 下面是一个示例代码…...
08-JVM垃圾收集器详解
上一篇:07-垃圾收集算法详解 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 虽然我们对各个收集器进行比较,但并非为了挑选出一个最好的收集器。因为直到现在为止还没有最好的垃圾收集器出现,更加没…...
sql_mode详解
文章目录 一、sql_mode作用二、查询sql_mode三、mysql8默认的mode配置(6个默认配置)四、常见mode详细解释mysql8默认配置了的mode(6个)需要自己配置的mode(4个) 五、设置sql_mode(一旦设置了&am…...
Vue3的新特性总结
一、Vue3 里 script 的三种写法 首先,Vue3 新增了一个叫做组合式 api 的东西,英文名叫 Composition API。因此 Vue3 的 script 现在支持三种写法。 1、最基本的 Vue2 写法 <template><div>{{ count }}</div><button click"…...
【Node】Mac多版本Node切换
1、查看当前电脑是否安装node node -v或者查看当前电脑通过brew安装的node路径 ls /usr/local/Cellar/node*2、查看可安装的node brew search node3、安装其他版本node 下载需要安装的node版本 brew install node144、brew切换node版本 假设之前的版本是18,需…...
Apache POI
POI介绍 Apache POI是用Java编写的免费开源的跨平台的Java API, Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能, 其中使用最多的就是使用POI操作Excel文件。 maven坐标: <dependency><groupId>org.apa…...
个人能做股票期权吗?个人期权交易开户条件新规
个人投资者是可以交易股票期权的,不过期权交易通常需要投资者具备一定的投资经验和风险承受能力,因为期权交易涉及较高的风险和复杂性,下文为大家介绍个人能做股票期权吗?个人期权交易开户条件新规的内容。本文来自:期…...
Java面试整理(一)
开篇 面试,应该都是打工人需要面对的事情。我记得自己以前开始准备Java工程师面试时,都会去看那个《面试宝典》,当时这个“宝典”真的很经典,现在应该还是不少朋友会看这个。我自己经历过了找工作的面试,和企业招聘工作。所以我自己更加想从这两个不同的角度去和大家交流这…...
国家信息中心举办“数字政府建设暨数字安全技术”研讨会:海云安提出数字政府软件供应链安全解决方案
近日,由国家信息中心主办,复旦大学研究院承办的“数字政府建设暨数字安全技术研讨会”在义乌顺利召开。国家信息中心信息与网络安全部副主任禄凯,复旦大学党委常委、宣传部部长陈玉刚,义乌市委常委、常务副市长喻新贵为会议致辞。…...
uniapp 处理 分页请求
我的需求是手机上一个动态滚动列表,下拉到底部时,触发分页数据请求 uniapp上处理分页解决方案 主要看你是如何写出滚动条的。我想到的目前有三种 (1)页面滚动:直接使用onReachBottom方法,可以监听到达底部…...
最新2米分辨率北极开源DEM数据集(矢量文件)
一、项目背景 美国明尼苏达大学(University of Minnesota)的极地地理空间中心(Polar Geospatial Center, PGC)于2023年8月发布了北极数字高程模型4.1版本(ArcticDEM Mosaic 4.1)。该DEM数据集是革命性的,分辨率达到了2米,而一般的开源DEM数据集分辨率是3…...
【计算机网络】HTTP(下)
本文承接上文的代码进行改造,上文链接:HTTP上 文章目录 1. 实现网站跳转实现 自己的网站跳转 2. 请求方法(get) && 响应方法(post)GET方法POST方法GET与POST的应用场景 3. HTTP状态码在自己设计的代码中发现4043开头的状态码(重定向状态码)永久…...
一分钟看懂大模型备案
大模型备案,全称 “生成式人工智能服务上线备案”,是国内面向公众提供大模型服务的法定合规流程,核心是审核模型安全、数据合规与内容可控,未备案违规上线最高罚一千万元,该处罚依据主要来自两大核心法规:1…...
家庭影院系统构建指南:从流媒体技术到硬件选型
1. 疫情下的娱乐变局:从影院到客厅的深度迁移作为一名长期关注消费电子与家庭娱乐领域的从业者,我亲历了过去几年行业最剧烈的震荡。疫情像一只无形的手,强行按下了社会运行的暂停键,却又为另一个赛道按下了加速键。当电影院的大门…...
自组织映射(SOM):无监督拓扑保持的高维数据可视化与聚类
1. 什么是自组织映射(SOM)?它到底能帮你解决什么实际问题?我第一次在客户现场看到SOM落地,是在一家做工业设备预测性维护的公司。他们有上百台传感器,每台每秒产生十几维的振动、温度、电流数据,…...
如何在10分钟内完成1小时视频硬字幕提取:望言OCR完整指南
如何在10分钟内完成1小时视频硬字幕提取:望言OCR完整指南 【免费下载链接】SubtitleOCR 快如闪电的硬字幕提取工具。仅需苹果M1芯片或英伟达3060显卡即可达到10倍速提取。A very fast tool for video hardcode subtitle extraction 项目地址: https://gitcode.com…...
当1000A牵引电流遇上微安级信号:高铁轨道电路中扼流变压器的‘抗干扰’实战解析
高铁轨道电路中扼流变压器的抗干扰设计与工程实践 电气化铁路的轨道电路系统面临着前所未有的电磁兼容挑战——如何在承载1000A级牵引电流的钢轨上,同时可靠传输微安级的信号电流?这个看似矛盾的需求,正是现代高铁信号系统设计的核心难题之一…...
5分钟掌握TrafficMonitor插件系统:从零开始构建你的桌面监控中心
5分钟掌握TrafficMonitor插件系统:从零开始构建你的桌面监控中心 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 还在为Windows桌面上单调的系统监控而烦恼吗&#x…...
3款实用论文降重神器,帮你轻松解决重复率难题
对于正在撰写毕业论文或者期刊论文的创作者来说,重复率不达标绝对是最头疼的问题之一。自己手动改了三五遍,重复率还是卡在要求线以上,不仅耽误时间还影响心态,这时候一款好用的降重工具就能帮你省下不少精力。今天我们就以第三方…...
京东数据利器:掌握详情与评论资源
在电商高速发展的今天,数据是了解市场、洞察用户需求、优化产品策略的核心利器。京东作为国内领先的电商平台,其商品详情与用户评论数据承载了大量价值信息。掌握这些资源,不仅可以帮助商家、品牌方优化产品策略,还能辅助内容创作…...
基于AI与胎心监护信号预测胎儿生物年龄:技术实现与临床价值
1. 项目概述:从胎心监护到胎儿“数字时钟” 在产科临床和围产期医学领域,评估胎儿宫内健康状况,尤其是其发育成熟度,一直是一项核心且充满挑战的任务。传统的评估方法,如通过超声测量胎儿双顶径、股骨长等生物参数来估…...
独立开发者如何利用 Taotoken 的模型广场为不同产品功能匹配合适模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者如何利用 Taotoken 的模型广场为不同产品功能匹配合适模型 对于独立开发者而言,运营多个小型产品是常态。这…...
