微服务09-Sentinel的入门

文章目录

  • 微服务中的雪崩现象
    • 解决办法:
    • 1. 超时处理
    • 2. 舱壁模式
    • 3. 熔断降级
    • 4.流量控制
  • Sentinel
    • 1.介绍
    • 2.使用操作
    • 3.限流规则
    • 4.实战:流量监控
    • 5.高级选项功能的使用
    • 1.关联模式
    • 2.链路模式
    • 3.总结
  • 流控效果
    • 1.预热模式
    • 2.排队等待模式
    • 3.总结
    • 4.热点参数限流
    • 5.实战

微服务中的雪崩现象

首先,我们介绍一下微服务中雪崩现象:因为微服务中服务是互相调用的,错综复杂,当一个服务D出现问题时,那么调用D的服务请求就会失败,当请求累积到一定的量时,请求D的服务也会出问题——>(因为我们内置的tomcat连接数是有限制的,如果一直请求那个失败的服务,当请求达到一定的数量),服务A也会炸掉,从而引起整个链路服务不可用;

在这里插入图片描述

解决办法:

1. 超时处理

我们可以设置超时时间,超过了就会返回错误信息,释放tomcat资源

劣势:起到了缓解雪崩问题,当服务请求的时间比超时时间短,假设1s内多个请求,而你超时时间是1s,那么还是会出现雪崩

在这里插入图片描述

2. 舱壁模式

将每个业务隔离开(有一个线程池),限定每个业务能够使用的线程数,就算这个服务挂了,也就损失这一部分的线程,从而避免了损失整个tomcat资源——>也就是线程隔离

在这里插入图片描述

3. 熔断降级

根据异常请求的比例,比如说你异常请求达到了1/2,超过了这个阈值就会熔断该业务,拒绝一切请求访问该业务

在这里插入图片描述

4.流量控制

首先我们了解一下QPS——>每秒能够处理的请求数;流量控制——>限制服务访问的QPS,避免服务因为流量突然增大而挂掉;

它是一种预防的功能,给大量请求进行限流,以一定数量请求进行访问

在这里插入图片描述

Sentinel

1.介绍

首先我们来说一下信号量隔离和线程池隔离之间的区别:

信号量隔离:用的还是tomcat池子,只是我们每一个业务都被限定了能够用多少个线程去访问,当请求数超过这个限定的数量时,就会拒绝访问了——>也就是说它会限制每个业务能使用的线程数量

好处:不用创建线程池,节省资源,轻量级;

坏处:隔离性较差,相当于吃大锅饭,每个规定了盛多少饭;

线程池隔离:就跟我们上面的舱壁模式一样,每个业务分配一个线程池,线程池里面限定了一定的线程数,起到了隔离作用,当服务挂了也就浪费这个池子

好处:隔离性好,方便控制,可以异步调用,毕竟每个服务都有线程池,我们请求给到线程池中处理,用户就可以干自己的事情了;

坏处:浪费了资源;

控制台

Sentinel支持开箱即用,那些第三方配置都可以直接用,比如:查看监控,配置规则等等

熔断降级策略:

除了根据失败的请求比例来判断是否熔断,是否拒绝其他的请求请求该业务之外;还可以根据请求服务的时间来进行熔断降级——>因为请求服务时间可能太长了,拖垮我们的服务,我们进行熔断;

限流

可以让突发的流量平稳运行——>进行一种流量控制,支持慢启动和匀速排队模式

在这里插入图片描述

在这里插入图片描述

2.使用操作

文件目录cmd打开小黑窗口然后运行代码

java -jar sentinel-dashboard-1.8.x.jar //启动sentinel

修改配置(启动有效)

java -jar sentinel-dashboard-1.8.x.jar -Dserver.port=8090//修改端口配置

在这里插入图片描述

然后我们后台启动服务,Sentinel进行监控

 cloud:nacos:discovery:server-addr: localhost:8848 # nacos服务地址cluster-name: Hangzhou # 实例集群ephemeral: false  # 非临时实例sentinel:transport:dashboard: localhost:8080 #sentinel控制台版本
        <!--        sentinel依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>0.9.0.RELEASE</version></dependency>

在这里插入图片描述

3.限流规则

点击服务资源查看流量监控,就可以弹出表单,添加流控规则

在这里插入图片描述

这个单机阈值就是每秒能够请求的次数,资源名就是请求的资源

当超过单机阈值,就会报错;

4.实战:流量监控

在这里插入图片描述

点击流控设置流量控制

针对来源:意思就是从哪里来的,限流

QPS:每秒请求数量

在这里插入图片描述

我们要模拟1s超过5次请求,可以利用jmeter

发现限流成功

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

可以修改响应风格,看到响应失败

在这里插入图片描述

5.高级选项功能的使用

在这里插入图片描述

# 流控模式
流控模式强调的是对哪个资源进行限流

在这里插入图片描述

1.关联模式

场景:比如某个用户支付时候,需要修改订单状态,那么用户需要查询订单,查询和修改订单的操作会争抢数据库锁——>从而产生竞争;
业务需求是:有限支付和更新订单的业务,以此当修改订单业务触发阈值时,我们这里需要对查询订单业务限流;
在这里插入图片描述

当/write资源访问(修改订单)量触发阈值时,就会对/read资源限流,从而避免影响/write资源

那么我们的阈值就是对限流的资源(被关联的)使用;

当你访问query时发现被限流——>访问update次数过多,又因为update与query关联

在这里插入图片描述

2.链路模式

在这里插入图片描述

Sentinel默认只会标记Controller中的方法,如果要标记其他的需要@SentinelResource注解
在这里插入图片描述
在这里插入图片描述

谁优先级低就对谁的goods进行限流
阈值为 6
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

save是成功的
查看监控

在这里插入图片描述

3.总结

在这里插入图片描述

链路:是对资源的来源进行一个限流

关联:强调的是一个优先级,比如修改调用查询,触发阈值对查询限流

流控效果

流控效果强调的是对请求的处理,效果

在这里插入图片描述

1.预热模式

意思就是服务器一开始不会应对那么多的请求QPS,如果一下应对那么多,可能一上来就给打懵了,会有个预热——>防止一下高并发导致服务器宕机

在这里插入图片描述

在这里插入图片描述

2.排队等待模式

在这里插入图片描述
在这里插入图片描述

案例:给order/{id}限流,最大QPS为10,每s处理10个请求,利用排队的流量监控,超时时间设置为5s——>超过5s的请求直接拒绝

请求进入队列,按照阈值运行的时间间隔依次执行请求;如果请求预期等待时间>超时间就会拒绝,然后处理的请求资源放出来平稳
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.总结

在这里插入图片描述
各有各的好处:一个直接让你失败不让你久等,对用户体验比较好;warm up防止高并发导致的服务器宕机,相对更加安全;而排队等待的话能够使流量平稳运行,只有超过整个队列时长才会拒绝,更加综合一点;

4.热点参数限流

之前的的限流是统计访问某个资源的所有请求,判断是否超过QPS阈值,而判断是否拒绝;

而热点参数限流——>是根据参数值是否相同来判断拒绝

参数索引是第x个参数,判断含有这个参数的请求数是否超过QPS阈值

在这里插入图片描述

在这里插入图片描述

5.实战

给order/{id}进行热点参数限流

注意:热点参数限流对默认SPringMVC资源无效,只有通过@SentinelResource注解的才行

在这里插入图片描述

在这里插入图片描述
对我们设置@SentinelResource的控制器进行参数限流

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【eNSP】VLAN基础配置

一、基于接口划分VLAN&#xff08;Access接口和Trunk接口&#xff09; 1、创建VLAN LSW1 [LSW1]vlan batch 10 20 Info: This operation may take a few seconds. Please wait for a moment...done.LSW2 [LSW2]vlan batch 10 20 Info: This operation may take a few second…

K8S存储总结持久化存储解决方案(以NFS为例)

目录 K8S存储 一、emptydir 1. emptydir是什么 2. emptydir例子 二、hostpath hostpath 是什么 hostpath 例子 弊端 三、持久化存储 1.Persistent Volume(PV) 2.Persistent Volume Claim(PVC) 3.PV/PVC结合NFS使用实践&#xff08;持久存储&#xff09; 1. NFS服务…

Linux编译FFmpeg

Linux编译FFmpeg 1. 下载FFmpeg源码 FFmpeg源码下载地址&#xff1a;http://ffmpeg.org/download.html 在下面选择版本 2. 解压并创建生成目录 tar xvf ffmpeg-snapshot.tar.bz2 // 解压下载的FFmpeg源码 makedir /root/ffmpeg // 创建生成目录3. 编译FFmpeg 进入FF…

Flink---10、处理函数(基本处理函数、按键分区处理函数、窗口处理函数、应用案例TopN、侧输出流)

星光下的赶路人star的个人主页 我的敌手就是我自己&#xff0c;我要他美好到能使我满意的程度 文章目录 1、处理函数1.1 基本处理函数&#xff08;ProcessFunction&#xff09;1.1.1 处理函数的功能和使用1.1.2 ProcessFunction解析1.1.3 处理函数的分类 1.2 按键分区处理函数&…

软件测试工具有什么作用?有哪些好用的测试工具推荐?

软件测试工具是现代软件测试中不可或缺的重要组成部分&#xff0c;指的是一系列在软件开发过程中使用的工具&#xff0c;用于帮助测试人员进行测试活动&#xff0c;提高测试效率&#xff0c;减少测试成本。选择并使用合适的软件测试工具&#xff0c;可提高软件质量和效率。 一…

【docker】Docker--harbor私有仓库部署与管理——重点

一、理论 1、本地私有仓库 只能在当前机器上做 #首先下载 registry 镜像 docker pull registry #在 daemon.json 文件中添加私有镜像仓库地址 vim /etc/docker/daemon.json { "insecure-registries": ["192.168.10.23:5000"], …

数学建模——确定性时间序列分析方法

介绍 将预测对象按照时间顺序排成一组序列&#xff0c;称为时间序列。从时间序列过去的变化规律&#xff0c;推断今后变化的可能性及变化趋势、变化规律&#xff0c;这就是时间序列预测法。 时间序列模型&#xff0c;其实也是一种回归模型。其基本原理是&#xff0c;一方面承认…

uni-app:实现页面效果4(echarts数据可视化)

效果 代码 <template><view><view><view class"title">概况</view><view class"line_position"><view class"line1"><view class"item"><view class"one">今日销售…

什么是 API 接口?给大家举例说明

Api 接口也就是所谓的应用程序接口&#xff0c;api 接口的全称是 Application Program Interface&#xff0c;通过 API 接口可以实现计算机软件之间的相互通信&#xff0c;开发人员可以通过 API 接口程序开发应用程序&#xff0c;可以减少编写无用程序&#xff0c;减轻编程任务…

微信小程序 在bindscroll事件中监听scroll-view滚动到底

scroll-view其实提供了一个 bindscrolltolower 事件 这个事件的作用是直接监听scroll-view滚动到底部 但是 总有不太一样的情况 公司的项目 scroll-view 内部 最下面有一个 类名叫 bottombj 的元素 我希望 滚动到这个 bottombj 上面的时候就开始加载滚动分页 简单说 bottombj这…

过滤器的实现及其原理责任链设计模式

Filter过滤器 过滤器的应用 DeptServlet,EmpServlet,OrderServlet三个业务类的业务方法执行之前都需要编写判断用户是否登录和解决的中文乱码的代码,代码没有得到重复利用 Filter是过滤器可以用来编写请求的过滤规则和多个Servlet都会执行的公共代码,Filter中的业务代码既可…

这个方法用得好,工作车间效率翻倍!

工作车间是各种制造和生产过程的核心&#xff0c;依赖于可靠的电力分配系统以维持正常运营。然而&#xff0c;电力分配柜的状态监控通常被低估&#xff0c;而它对工作车间的安全性、效率和可靠性产生了深远的影响。 因此&#xff0c;配电柜监控变得至关重要&#xff0c;它可以提…