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

消耗时间

熔断降级

半开状态

创建时间

打开 关闭的状态

超过阈值

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

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

难道不能保存?

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值