sentinel源码浅析

sentinel源码浅析

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

首先进入这里

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

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

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

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

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

继续执行

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

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

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

这个方法有很多实现类

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

接下来进行熔断校验

核心是这个方法

进到这里

逻辑如下

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

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

接下来走这个方法

这里是核心逻辑

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

以慢回复为例

核心是这个方法

逻辑如下

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

相关推荐
葫芦和十三4 小时前
图解 MongoDB 04|索引模型:每建一个索引,就是在 B+-tree 森林里多栽一棵
后端·mongodb·agent
用户47949283569155 小时前
claude Fable用不了?把Gpt 5.5pro接到你的claude code里
前端·后端
GetcharZp7 小时前
告别 Nginx 复杂配置!这款带 Web 面板的万能代理神器,让端口转发变得如此简单
后端
IT_陈寒9 小时前
React的useState居然还有这种坑?我差点删库跑路
前端·人工智能·后端
Pedantic10 小时前
SwiftUI 手势笔记
前端·后端
金銀銅鐵10 小时前
[Python] 从《千字文》中随机挑选汉字
后端·python
飘尘13 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
浏览器工程师14 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
行者全栈架构师14 小时前
Maven dependency:tree 的 8 个高级用法
java·后端