sentinel源码浅析

sentinel源码浅析

sentiel主要设计模式是责任链,核心是下面这张图,接下来结合图对源码进行分析

首先进入这里

这个是重要方法,原理这要哦由这个bean体现

其他是分支逻辑,不重要,重要的是划线部分的语句

if里面由return一般是分支逻辑,不重要,划线重要

一开始为空,肯定走划线逻辑

实现类有很多,第一次执行的是default,上面有提及

继续执行

结合第一张图片执行的是node这个实现类,参考第一张图片

直接追到责任链里最后两个,其他的没什么逻辑,不重要,接下来这个是流量的slot,作用是进行流控

接下来走这里 看名字就知道我们走的是单机

这个方法有很多实现类

对应三个算法,具体不用看,逻辑很复杂

接下来进行熔断校验

核心是这个方法

进到这里

逻辑如下

接下来回来,退出时又会执行一次校验链

核心是降级的slot,其他不用看

接下来走这个方法

这里是核心逻辑

有两个模式,一个是慢回复,一个是异常

以慢回复为例

核心是这个方法

逻辑如下

其他具体的算法没去研究,对于学习来讲不是很重要,没必要去研究

相关推荐
IT_陈寒1 小时前
Vite热更新失效?你可能漏了这个配置
前端·人工智能·后端
SomeB1oody2 小时前
【RustyML入门】1.0. 快速上手
开发语言·后端·机器学习·rust·教程
史呆芬2 小时前
分布式事务实战:微服务跨服务数据一致性解决方案
java·后端·spring cloud
犀利豆3 小时前
Claude code tools 研究系列(二)EnterPlanMode
人工智能·后端
用户69371750013843 小时前
AI时代,程序员该往哪走?
前端·后端
Revolution614 小时前
第一次运行 Node.js:终端里的 JavaScript 怎样执行
后端·面试·node.js
Python私教4 小时前
Django 6.1 RC1 实测:FETCH_PEERS 两条 SQL 解决 N+1,select_related 还需要吗?
后端·python·django
大侠在此在在此4 小时前
教你用最简单的数学自底向上地高效学习SQL注入
后端