源码解读一 :ProcessorSlot责任链
文章目录
概述
在总体设计章节中,我们知道 Sentinel 是通过不同的 ProcessorSlot 实现不同的功能,并且将不同的 ProcessorSlot 组装为一个责任链,也就是 ProcessorSlotChain,来对每一次资源访问使用不同 ProcessorSlot 进行处理从而实现对应的功能。那么在此之前,首先就需要进行 ProcessorSlotChain 的创建。
在 Sentinel 中,每一个资源都有与之对应的独立的 ProcessorSlotChain 。为此,Sentinel 中提供了一个方法 CtSph#lookProcessChain 来获取资源对应的 ProcessorSlotChain 。下面会针对整个获取和初始化的流程进行分析。
代码实现
初始化 ProcessorSlotChain
获取 SlotChainBuilder
Sentinel 所有的扩展点都是通过 SPI 的方式来实现。获取 ProcessorSlotChain 也不例外。对象 CtSph 内部有一个 Map 类型的属性 chainMap 用于存储资源和 ProcessorSlotChain 的映射关