sentinel源码浅析

sentinel源码浅析

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

首先进入这里

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

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

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

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

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

继续执行

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

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

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

这个方法有很多实现类

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

接下来进行熔断校验

核心是这个方法

进到这里

逻辑如下

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

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

接下来走这个方法

这里是核心逻辑

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

以慢回复为例

核心是这个方法

逻辑如下

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

相关推荐
Mk598781 小时前
让 Agent 长出双手:一个注解搞定工具调用,AgentScope-Java @Tool 实战
后端
小溪学编程1 小时前
将 Bean 放入 Spring 容器中的方式有哪些?
java·后端·spring
Mk598781 小时前
一个 Markdown 文件就是一个员工 —— AgentScope-Java 多智能体编排实战(核心篇)
后端
imDwAaY1 小时前
微信运动每天晚上 10 点推送排行榜,技术上到底有多难?
后端
ServBay1 小时前
PHP 突爆 9.2 分高危漏洞,你升级了吗?
后端·php
武子康2 小时前
撤回发生在重建途中,旧索引还能切回来吗
人工智能·后端·agent
码事漫谈2 小时前
双十一,我为什么想买一台编码显示器
后端
喵个咪3 小时前
GoWind Kanban 拆解:看板拖拽背后——LexoRank、乐观锁与尽力而为广播
后端·架构·go
喵个咪3 小时前
GoWind OA 拆解:用 3000 行 Go 写一个够用的审批工作流引擎
后端·架构·go
喵个咪3 小时前
GoWind Ledger 拆解:单式记账的余额一致性——confirm、补偿,以及没进事务的那些缝隙
后端·架构·go