Sentinel使用

前言:

        所有的准备工作都做好了,就可以进入到Sentinel的具体使用上了,这里还需要一个测试工具叫做jmeter,是一个很好的测试工具,专门针对并发的,准备好以后,就可以直接开干了。

一、Sentinel作用

        Sentinel主要是为了解决雪崩问题。微服务的雪崩就是当一个服务出现问题,其它调用问题服务的服务也会出现问题,从而一传十十传百,导致整个系统崩溃,解决微服务雪崩的常见方式有四种:

超时处理:请求超过一定时间就返回报错信息。

仓壁模式:也叫做线程隔离,限制每个业务使用线程的数量,减少对其它业务的影响。

熔断降级:统计请求异常的比例,异常比例达到阈值之后,会熔断该业务,拦截一切访问该业务的请求。

流量控制:对业务的QPS进行限制,避免服务因为流量激增而鼓掌。

二、控制台基本使用

1、进入到Sentinel控制台页面,尝试使用jmeter并发访问某可接口:

可以在实时监控里面看到QPS变化的折线图,也可以看到右边有相关数据的统计。

2、点击簇点链路,可以为不同的url设置流控规则:

 流控规则基本上分为两种:一个是QPS、一个是并发线程数

(1)QPS:在后面的单机阈值里面的设置最大的QPS值,就是每秒钟允许的最大并发量,这种模式下,只要并发量查过最大阈值,都会被拒绝,返回的结果是429,表示被限流。

(2)并发线程数:在后面的单机阈值里面的设置最大线程数量,每秒钟最多有两个线程支持你的请求。这种模式下,最大的QPS可能很大,但是不稳定,时高时低,但是超过线程能处理的能力范围之后,就会出现拒绝,也就是限流。

3、高级选项

 在新增流控规则中点击高级选项,出现流控模式,有三种:

直接模式:统计当前请求的资源,当超过阈值之后,对当前资源直接限流,是默认模式。

关联模式:在某些业务场景下,限流也需要有权重,比如:修改订单和查询订单,都是需要对订单进行操作,这会导致锁的竞争,但是修改订单的权重显然大于查询,因此,当修改订单的请求到达阈值时,需要对查询订单做限流。大致一是就是,我这里都忙不过来了,你就不要来添堵了。

链路模式:在创建订单和查询订单时,都会去查询商品服务,但是查询订单的并发量往往比较高,这时,就需要给这个查询链路加上一个并发的上线,不能让它的QPS无限放大,从而影响到订单的创建。

另外还有流控效果,也分为三种:

快速失败:到达阈值之后,新的请求会立即拒绝并且抛出异常,这是默认的方式。

Warm Up:预热模式,主要是以防止服务的冷启动,服务刚启动时就有大量的请求进入,直接干蹦服务;高开始阈值大概是最大阈值的三分之一,会设置一个预热时间,在这个时间段内,阈值会慢慢加大,直到达到最大阈值,那超过阈值的请求也会理解被拒绝。

排队等待: 将所有的请求放到一个队列里面,根据QPS的大小,计算出请求间隔的时间,例如QPS=5,那么1s钟需要执行5个请求,每个请求就是200ms,第二个请求需要等待第一个请求执行完,那么必须要等待200ms,以此类推,后续的请求进来之后,都会计算自己的预计等待时间,如果预计等待时间比设置的最大等待时间要大,那么该请求就会被拒绝。

 最后还有一种热点规则,精确到了参数,例如:商品A查询的QPS是10,而商品B的QPS是2,那么商品A相对于商品B来说是热点数据,我们可以通过对他的id设置限流,说实话,这个有点针对的感觉;查询商品用的是一个接口,只是参数不一样,对不同的参数可以设置限流,但是需要注意的是 热点参数对默认的SpringMVC资源无法生效,需要在方法上添加注解@SentinelResource("随便起个名字")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/291563.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2下载Spring,第一个Spring程序+Log4j

https://www.yuque.com/dujubin/ltckqu/kipzgd#,注意的是,现在(202401)SpringFramework从release搬到了snapshot下,在这下面找到6.0.2下载. 下载后解压到文件夹,整个框架包含非常多jar包。 然后就可以在p…

UMLChina书籍大全(2024)软件方法人月神话人件企业应用架构模式UML参考手册彩色UML建模领域驱动设计对象设计……

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 以下列出有UMLChina标记的书。 首先是写了十几年还没有写完的软件方法 其他的是译作: 人月神话 2002年,UMLChina和清华大学出版社合作,翻译了《人…

linux性能优化

文章目录 性能优化图CPU进程和cpu原理性能指标 性能优化图 CPU 进程和cpu原理 进程与线程: 进程是程序的执行实例,有自己的地址空间和系统资源。线程是进程内的执行单元,共享进程的资源。在多核系统中,使用多线程可以更好地利用多…

倒排索引

正向索引:id(序号)--》 内容(文档或记录)--》关键词 ,这个过程。 倒排索引:关键词 --》id(序号)--》内容,这个过程。 在有些图书的最后也有倒排索引的例子 …

Elasticsearch 中映射参数doc_values 和 fielddata分析比较

一、doc_values 默认情况下,大部分字段是索引的,这样让这些字段可被搜索。倒排索引(inverted index)允许查询请求在词项列表中查找搜索项(search term),并立即获得包含该词项的文档列表。 倒排…

适口性好的猫粮:性价比高的主食冻干测评推荐

冻干猫粮因其高营养和适口性,受到了众多铲屎官们的喜爱和追捧。冻干猫粮的喂养方式非常简单,可以直接喂食,也可以将冻干复水后喂食,根据猫咪的不同喜好可以选择不同的喂养方式。然而,有些铲屎官在选择冻干猫粮时会担心…

反距离加权水平内插,附matlab代码(ERA5和GNSS站点不并址的处理方法之水平补偿)

1.内插方法 我在学习过程,内插方法为反距离加权水平内插,分享我的方法和公式,以及matlab代码。 2.使用该内插法的原因 GNSS与ERA5格网位置不并址,需要进行水平方向和垂直方向的补偿的补偿获得。水平方向不并址如第3节图所示&am…

羊大师讲解,羊奶为什么更适合高血压人群?

羊大师讲解,羊奶为什么更适合高血压人群? 高血压是一种常见的健康问题,它会引起诸多并发症并增加心脑血管疾病的风险。与此同时,人们越来越关注饮食对健康的影响。作为一种营养丰富且适合高血压人群的饮品,羊奶备受关…

如何使用 Python+selenium 进行 web 自动化测试?

Selenium是一个自动化测试工具,它可以模拟用户在浏览器中的操作,比如点击、输入、选择等等。它支持多种浏览器,包括Chrome、Firefox、Safari等等,并且可以在多个平台上运行。 安装和配置Selenium 在使用Selenium之前,…

error:0308010C:digital envelope routines::unsupported 前端项目错误

直接启动命令中增加: SET NODE_OPTIONS--openssl-legacy-provider && vue-cli-service serve

WebGIS开发的常见框架及优缺点

WebGIS开发引擎的发展历程: 内容来自公众号:Spatial Data 地图API分类 WebGIS系统通常都围绕地图进行内容表达,但并不是有地图就一定是WebGIS,所以下面要讨论下基于Web的地图API分类及应用场景。Web上的Map API主要分类&#xff…

不要盲目自学网络安全!学习顺序特别重要!

前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防…

【QT 5 +Linux下+录屏软件使用+总结说明+使用录屏软件+简单软件使用+SimpleScreenRecorder+操作说明】

【【QT 5 Linux下录屏使用录屏软件简单软件使用SimpleScreenRecorder操作说明】】 1、前言2、实验环境3、录屏软件综述SimpleScreenRecorder:Kazam:OBS Studio (Open Broadcaster Software):VokoscreenNG:RecordMyDesktop&#xf…

Jmeter如何添加插件

一、前言 ​ 在我们的工作中,我们可以利用一些插件来帮助我们更好的进行性能测试。今天我们来介绍下Jmeter怎么添加插件? 二、插件管理器 ​ 首先我们需要下载插件管理器jar包 下载地址:Install :: JMeter-Plugins.org 然后我们将下载下来…

【unity小技巧】Unity音乐和音效管理器

最终效果 前言 在游戏开发中,音乐和音效的管理是一个重要的环节。好的音乐和合适的音效可以为游戏增添氛围并提升玩家的体验。为了更好地管理音乐和音效,我们可以使用一个专门的音乐和音效管理器。 在本文中,我将向大家介绍如何在Unity中创…

Android 文字垂直排列,文字向右旋转90度

public class VerticalTextView extends View {private final int ROTATION_ANGLE 90; // 旋转角度,用于将文本垂直排列private String text; // 要显示的文本private TextPaint textPaint; // 用于绘制文本的画笔private Rect textBounds;// 文本边界float x, y;/…

Spring Boot 3 集成 Thymeleaf

在现代的Web开发中,构建灵活、动态的用户界面是至关重要的。Spring Boot和Thymeleaf的结合为开发者提供了一种简单而强大的方式来创建动态的Web应用。本文将介绍如何在Spring Boot项目中集成Thymeleaf,并展示一些基本的使用方法。 什么是Thymeleaf&#…

spug发布问题汇总记录

问题导览 1. [vite]: Rollup failed to resolve import "element-plus" from "src/main.js". 项目框架简介 vue3viteelement-plus 解决方案 - 1. 配置淘宝镜像源:npm config set registry https://registry.npm.taobao.org/ - 2. npm inst…

Spring框架-入门(IOC,DI)

文章目录 Spring框架简介创建Spring项目理解IOC和DI:IOC控制反转示例pom.xmlPerson.javaapplicationContext.xmlPersonTest.java DI依赖注入传统的方式GreetingService.javaGreetingServiceImpl.javaGreetingTest.java 使用DI依赖注入GreetingService.javaGreetingS…

Windows平台的网速监控悬浮窗软件Traffic Monitor使用体验

Windows平台的网速监控悬浮窗软件Traffic Monitor使用体验 一、Traffic Monitor介绍1.1 Traffic Monitor简介1.2 Traffic Monitor版本介绍1.3 Traffic Monitor特点 二、下载及安装Traffic Monitor2.1 下载Traffic Monitor2.2 安装Traffic Monitor 三、Traffic Monitor的使用体验…