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

消耗时间

熔断降级

半开状态

创建时间

打开 关闭的状态

超过阈值

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

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

难道不能保存?

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

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

相关文章

mysql中删除数据后,新增数据时id会跳跃,主键自增id不连续

引言&#xff1a; 在使用MySQL数据库时&#xff0c;有时候我们需要删除某些记录&#xff0c;但是删除记录后可能会导致表中的id不再连续排序。 如何实现删除记录后让id重新排序的功能。 如图&#xff1a; 删除数据后&#xff0c;中间的id不会自动连续。 下面有两种方法进行重…

万界星空科技仓库管理wms系统

企业在管理库存时&#xff0c;尤其是生产制造企业&#xff0c;使用传统方式比如纸笔、Excel 管理库存&#xff0c;由于工具和信息化存在局限&#xff0c;导致在管理库存时出现如下问题&#xff1a; 1、通过纸笔记录出入库申请&#xff0c;人为手动计算易出错&#xff0c;数据易…

金石工程项目管理系统 SQL注入漏洞复现

0x01 产品简介 金石工程项目管理软件是一款工程项目管理软件,专门针对建筑工程项目开发,可以用于各种工地的项目管理。 0x02 漏洞概述 金石工程项目管理系统TianBaoJiLu.aspx接口处存在SQL注入漏洞&#xff0c;攻击者可通过该漏洞获取数据库中的信息&#xff08;例如&#xff…

外贸B2B自建站怎么建?做海洋建站的方法?

如何搭建外贸B2B自建站&#xff1f;外贸独立站建站方法有哪些&#xff1f; 对于许多初次涉足者来说&#xff0c;搭建一个成功的外贸B2B自建站并不是一件轻松的任务。海洋建站将为您详细介绍如何有效地建设外贸B2B自建站&#xff0c;让您的国际贸易之路更加畅通无阻。 外贸B2B…

TR转发路由器测评—云企业网实现跨地域跨VPC的网络互通测评实战【阿里云产品测评】

文章目录 一.转发路由器 Transit Router 测评1.1 准备阶段1.2 本文测评收获1.3 什么是云企业网实例、转发路由器实例和云数据传输服务 二.使用云企业网实现跨地域跨VPC的网络互通2.2 **测试连通性**2.3 网络拓扑如下&#xff1a; 心得&#xff1a;总结&#xff1a; 声明&#x…

LeetCode Hot100 438.找到字符串中所有字母异位词

题目&#xff1a; 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 代码&#xff1a; class Solution …

.Net 8 Blazor下 Auto交互渲染模式试用

一、环境 C:\Users\zhuji>dotnet --version 8.0.100C:\Users\zhuji>dotnet --list-sdks 5.0.403 [C:\Program Files\dotnet\sdk] 6.0.404 [C:\Program Files\dotnet\sdk] 8.0.100 [C:\Program Files\dotnet\sdk] Microsoft Visual Studio Enterprise 2022 (64 位) - Cu…

『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程

『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程 1 JDK安装部署1.1 JDK下载1.2 JDK配置 2 Jmeter安装部署2.1 Jmeter下载2.2 Jmeter安装2.3 Jmeter相关目录配置2.4 Jmeter启动配置2.5 检查并启动 3 Jmeter汉化3.1 临时修改3.2 永久修改 4 准备测…

【数据分析 | Numpy】Numpy模块系列指南(一),从设计架构说起

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

【开源视频联动物联网平台】视频接入网关的用法

视频接入网关是一种功能强大的视频网关设备&#xff0c;能够解决各种视频接入、视频输出、视频转码和视频融合等问题。它可以在应急指挥、智慧融合等项目中发挥重要作用&#xff0c;与各种系统进行对接&#xff0c;解决视频能力跨系统集成的难题。 很多视频接入网关在接入协议…

品牌如何用软文与用户产生联结?媒介盒子分享两大要素

做软文推广&#xff0c;重要的一点就是为别人提供有价值或有意思的内容&#xff0c;比如卖车的教汽车养护知识&#xff0c;做金融的分享理财知识&#xff0c;人家觉得在这里能找到想要的东西&#xff0c;自然会成为粉丝&#xff0c;效果比强行推销要好很多。但是许多企业在做软…

【计算机毕业设计】springboot+java高校实验室器材耗材料借用管理系统94l73

实验室耗材管理系统在Eclipse/idea环境中&#xff0c;使用Java语言进行编码&#xff0c;使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务&#xff0c;本系统教师和学生申请使用实验材料&#xff0c;管理员管理实验材料&#xff0c;审核实验材料的申请…

冒泡排序算法是对已知的数列进行从小到大的递增排序。

题目描述冒泡排序算法是对已知的数列进行从小到大的递增排序每个实例输出两行&#xff0c;第一行输出第1轮结果, 第二行输出最终结果 它的排序方法如下: 1.对数列从头开始扫描&#xff0c;比较两个相邻的元素,如果前者大于后者,则交换两者位置 2.重复步骤1&#xff0c;直到没有…

抖音本地生活服务商申请条件

抖音的本地生活服务商目前有两种&#xff0c;一种是可以做全国的服务商&#xff0c;我们一般叫抖音本地生活服务商&#xff0c;一种是区域优待服务商&#xff0c;也就是后面出来的服务商&#xff0c;这两种服务商的申请方式大同小异。 相同的地方就是都需要给平台交保证金。抖…

【深度学习实验】图像处理(三):PIL——自定义图像数据增强操作(随机遮挡、擦除、线性混合)

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. PIL基础操作2. Cutout&#xff08;遮挡&#xff09;2.1 原理2.2 实现2.3 效果展示 3. Random Erasing&#xff08;随机擦除&#xff09;3.1 原理3.2 实现3.3 效果展示 4. Mixup&…

简单0成本构建一个企业内部的视频点播、培训直播、安防监控、录像管理于一体的数字视频管理体系

以前&#xff0c;企业要构建一套数字化的视频管理体系&#xff0c;把企业内部的各种视频文件、直播培训、安防监控视频都整合到一套流媒体音视频服务里面&#xff0c;实现统一的对外供货、对外赋能的方案&#xff0c;是很困难的&#xff01;因为&#xff0c;原来这都是好几个项…

jupyter notebook 添加环境与删除环境

添加环境 一、查看conda现有的环境 打开 Anaconda Powershell Prompt 输入以下代码&#xff0c;查看全部环境&#xff1a;conda env list 可以看到如下已经配置的环境变量&#xff1a; 二、激活现有环境 在 Anaconda Powershell Prompt 继续输入&#xff0c;激活环境&#…

【brpc学习实践十二】bthread

概览 bthread(代码)是baidu-rpc使用的M:N线程库,是其稳定和高效的关键组件。能更好地利用多核cpu,能在pthread中运行,需要注意的是,bthread的work stealing机制会da让任务pthread发生切换,从而让thread_local变量不可信,通常在bthread_usleep或这join的时候就有可能发生…

基于单片机的蔬菜大棚温湿度控制系统

1&#xff0e;设计任务 利用AT89C51单片机为核心控制元件,设计一个节日彩灯门&#xff0c;设计的系统实用性强、操作简单&#xff0c;实现了智能化、数字化。 本系统通过SHT11传感器测量出大棚内的温湿度&#xff0c;并将温湿度电信号传至单片机AT89C51,单片机系统通过预先设…

双向ESD保护 汽车级TVS二极管 ESD9B3.3ST5G工作原理、特性参数、封装形式

什么是汽车级TVS二极管&#xff1f; TVS二极管是一种用于保护电子电路的电子元件。它主要用于电路中的过电压保护&#xff0c;防止电压过高而损坏其他部件。TVS二极管通常被称为“汽车级”是因为它们能够满足汽车电子系统的特殊要求。 在汽车电子系统中&#xff0c;由于车辆启…