Sentinel的一些知识二

11231041

下一个是 熔断规则是异常数  

和异常比例一样 只是换成了异常个数

1秒内的异常数有3个,就熔断2秒

下一步 进行压力测试

11231343

热点规则

没懂这个热点规则存在的意义

某个用户访问过于频繁,对其进行限制,给其他用户访问的机会。毕竟对公司而言,是要尽可能的扩大用户群体。

SentinelResource(Value="hotspot")中的Value指定了资源名称

增加参数类型,参数值,限流阈值

授权规则

根据调用来源判断

11231412

设置白名单

定义一个参数叫 serviceName,这个参数是从哪里传过来的呢?

在地址栏直接增加参数

使用Feign发送请求,奥,这就连起来了呀,用OpenFeign发送请求,授权规则进行处理

用一个拦截器,设置相应的名称

对任何请求进行操作一定是个拦截器

11231449

系统规则

是一整个接口的

集群规则

独立模式

嵌入模式

应用实例 Token Server

Sebtinel规则持久化

数据放在内存中,刷新会消失

11231524

push模式规则不存在本地文件,而是存在Nacos中。重启时,从Nacos读取。

问:这个Sentinel客户端就是服务的客户端么?

怎么把sentinel和Nacos连接上,需要修改源码

11231628

第一步

将<scope>test<scope> 去掉

第二步 修改nacos的配置文件

下一步 增加依赖

下一步 添加配置

11231645

RestTemplate整合Sentinel

加上这个语句 SentinelRestTemplate

11231702

下面是OpenFeign整合Sentinel的步骤

第一步 引入相应的依赖

第二步 在配置中开启服务

下面是限流算法

1.计数器固定窗口算法

2.计数器滑动窗口算法

其实实质就是把一秒再细分为多个小间隔

09561124

3.漏斗算法

转换思想,把处理的对象从时间间隔转化成请求本身。

前两种算法都不是连续的

4.令牌桶算法

引入一个新的变量

Sentinel源码

五种方式进行限流

api http restTemplate Feign @SentinelRecource

第一种 使用API进行限流

第二种 使用http进行限流

SphU.entry 在一个拦截器里面使用

形成类 SentinelInvocationHandler 实现InvocationHandler接口

作用点 四个方式 有四个对应

http请求 AbstractSentinelInterceptor

WebMVCConfig

所有请求通过preHandler方法,方法中使用

自动装配类

spring.factories里引入了SentinelAutoConfiguration,还有SentinelFeignAutoConfiguration

返回builder,builder中返回SentinelInvocationHandler,SentinelInvocationHandler中有invok方法,invok方法中有SphU.entry方法

11241102

entry →entryWithPriority→责任链→lookProcessChain

加载8个类,8个槽

类加载过来了,下一步需要通过类构建对象

开始first和end相同,形成一条链

2.包装成为CtEntry

FlowRuleChecker.java里面

先有canPassCheck函数,再passLocalCheck函数  进行流控:快速失败,warm up ,排队等待

调用rule.getRater().canPass()方法,返回DefaultController.canpass()多态的使用,canpass函数

StatisticNode.java

RateLimiterController.java

问:等待时间是已知还是未知?

逻辑是:每200秒通过一个请求

前提是:漏桶每秒处理20个请求,很多请求过来了,堆积到一起,一个队列里面。队列有容量,超过容量的请求直接拒绝。队列有容量100。那么,第100个请求,被处理的时间是当前时间+5秒。

问:等待时间大于超时时间,这个超时时间是什么地方确定的?

11241429

排队完了,进入降级DegradeSlot.java的entry

Sentinel源码中熔断降级的实现

原理图如下

代码的实现  DegradeSlot.java

LeapArray.java

我有问题

问:为什么要这样做?

主体是请求,一个请求过来,对这个请求的相关数据进行分析

问:没有窗口新建一个窗口????这个窗口不是以绝对时间10点1分1秒和10点一分2秒?而是看相对时间?

怎么会没有窗口?我的理解是窗口都是已经确定好了的?

新建一个窗口

第1个

MetricBucket.java

2个窗口 1秒  500毫秒一个窗口

11241514

消耗时间

熔断降级

半开状态

创建时间

打开 关闭的状态

超过阈值

慢调用的比例大于预设的阈值,把熔断器打开

问:源码的修改??又是什么意思?不是直接在源码上改么?保存,打包就行了呀

难道不能保存?

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

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

相关文章

nexus制品库的介绍及详细部署使用

一、nexus 介绍 Nexus 是一个强大的仓库管理工具&#xff0c;用于管理和分发 Maven、npm、Docker 等软件包。它提供了一个集中的存储库&#xff0c;用于存储和管理软件包&#xff0c;并提供了版本控制、访问控制、构建和部署等功能。 Nexus 可以帮助开发团队提高软件包管理的效…

Ps:用好钢笔工具

使用钢笔工具时&#xff0c;应随时注意鼠标指针的形状。 ◆ ◆ ◆ 基本操作方法 1、绘制闭合路径 路径绘制结束时回到起点即可创建闭合路径。 2、绘制开放路径 想结束绘制时&#xff0c;按住 Ctrl 键点击画布空白处&#xff0c;或者&#xff0c;直接按 Esc 键&#xff0c;即可…

hadoop完全分布式搭建

文章目录 集群部署规划服务器准备Mobaxterm 远程登录实验前准备安装软件工具关闭防火墙 安装 JDK 和 Hadoop创建软件包目录解压软件包配置环境变量 集群搭建先创建 HDFS 工作目录和 LOG 目录配置集群配置环境配置 HDFS 主节点信息、持久化和数据文件的主目录配置 HDFS 默认的数…

万户ezOFFICE wpsservlet任意文件上传漏洞复现

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品&#xff0c;统一的基础管理平台&#xff0c;实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台&#xff0c;将外网信息…

深信服技术认证“SCSA-S”划重点:SQL注入漏洞

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 深信服安全服务认证工程师…

CANDENCE: PCB 中 元器件对齐

PCB 中 元器件对齐 以下面的几个电阻为例&#xff1a; step1&#xff1a;选择以下工具 step2&#xff1a;选中要对齐的器件&#xff0c;右键 Align Components 选择你想要的对齐方式即可

python进阶技巧

1.闭包 通过函数嵌套&#xff0c;可以让内部函数依赖外部变量&#xff0c;可以避免全局变量的污染问题 闭包注意事项&#xff1a; 总结&#xff1a; 2.装饰器 2.1装饰器的一般写法 2.2 装饰器的语法糖写法 def outer(func):def inner():print(睡了)func()print(起床)retur…

将项目放到gitee上

参考 将IDEA中的项目上传到Gitee仓库中_哔哩哔哩_bilibili 如果cmd运行ssh不行的话&#xff0c;要换成git bash 如果初始化后的命令用不了&#xff0c;直接用idea项放右键&#xff0c;用git工具操作

Java中的Lambda表达式

lambda表达式是一个可传递的代码块&#xff0c;可以在以后执行一次或多次。 1.lambda表达式的语法 eg&#xff1a;有如下lambda表达式&#xff1a; (int a, int b) -> {return ab}; 这个表达式的本质是一个函数。 一般的函数类似如下&#xff1a; int add(int a, int …

Android问题笔记四十八:蓝牙obtainMessage数据传输部分数据丢失乱序问题

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

SQL Sever 复习笔记【一】

SQL Sever 基础知识 一、查询数据第1节 基本 SQL Server 语句SELECT第2节 SELECT语句示例2.1 SELECT - 检索表示例的某些列2.2 SELECT - 检索表的所有列2.3 SELECT - 对结果集进行筛选2.4 SELECT - 对结果集进行排序2.5 SELECT - 对结果集进行分组2.5 SELECT - 对结果集进行筛选…

差分阻抗90Ω±10%或者其他分别走什么阻抗

差分阻抗90Ω10%或者其他分别走什么阻抗 普通走线阻抗HDMI接口布线要求USB接口布线要求网口接口布线要求LCD 接口布线要求DDR3关键信号处理要点 普通走线阻抗 必须选择 PCB 走线阻抗来匹配使用中的所有逻辑系别的特性阻抗(对于 CMOS 和 TTL&#xff0c;特性阻抗的范围是 80~11…