Sentinel是阿里开源的一个轻量级流量控制框架,它可以从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。
Sentinel相关的介绍文档请参见:https://github.com/alibaba/Sentinel/wiki/%E4%B8%BB%E9%A1%B5
Sentinel中用Entry代表一种资源,每种资源会有一个独有的Slot Chain,不同的插槽负责不同的功能,组合在一起实现整体的流量控制。Sentinel主要工作流程见文档:https://github.com/alibaba/Sentinel/wiki/Sentinel%E5%B7%A5%E4%BD%9C%E4%B8%BB%E6%B5%81%E7%A8%8B
Sentinel中的核心类如下图:
- SphU - Sentinel静态调用入口
- CtSph - 实际调用入口
- Context - 资源上下文,同一个资源可以包含在不同的context中
- CtEntry - 代表实际资源
- DefaultProcessorSlotChain - slot chain默认实现
- ProcessorSlot及子类 - 不同的slot实现
Sentinel主流程调用路径如下图: