学习目标
-
Sentinel的工作原理
第1章 限流原理
在Sentinel中,所有的资源都对应一个资源名称以及一个Entry。每一个entry可以表示一个请求。而Sentinel中,会针对当前请求基于规则的判断来实现流控的控制,原理如下图所示。

上图仅作为设计思想的展示,图中 Slot 的顺序已和最新版 Sentinel Slot Chain 顺序不一致
当一个外部请求过来之后,会创建一个Entry,而创建Entry的同时,也会创建一系列的slot 组成一个责任链,每个slot有不同的工作职责。
-
NodeSelectorSlot 负责收集资源的路径,并将这些资源的调用路径,以树状结构存储起来,用于根据调用路径来限流降级;
-
ClusterBuilderSlot 则用于存储资源的统计信息以及调用者信息,例如该资源的 RT, QPS,thread count 等等,这些信息将用作为多维度限流,降级的依据;
-
StatisticSlot 则用于记录、统计不同纬度的 runtime 指标监控信息;
-
FlowSlot 则用于根据预设的限流规则以及前面 slot 统计的状态,来进行流
本文深入探讨了Sentinel的工作原理,包括限流、SphU.entry方法的实现,以及Slot Chain的构建和作用。Sentinel通过创建Entry并构建处理链,执行包括NodeSelectorSlot、ClusterBuilderSlot、LogSlot、StatisticSlot、AuthoritySlot、SystemSlot、FlowSlot和DegradeSlot等功能插槽,实现流量控制、熔断降级等。文章详细分析了资源调用的流程,包括Context的创建、slot链的构建、Entry的创建以及统计信息的处理,揭示了Sentinel限流的核心算法。
订阅专栏 解锁全文
6605

被折叠的 条评论
为什么被折叠?



