Sentinel源码分析-ProceesorSlotChain调用链及树状资源节点

Sentinel 实现流控,隔离,降级等功能,本质要做两件事:

  • 数据统计: 统计某个资源的访问数据(QPS,RT(响应时间),异常比例)等信息
  • 规则判断: 判断流控规则,隔离规则,降级规则是否满足。

ProcessorSlotChian 实现上述功能的骨架,这个类是基于责任链模式设计,将不同功能(限流,降级,系统保护)封装为一个个的Slot,请求进入后逐个执行
责任链中Solt 也分为两大类

  • 统计数据的构建

    • NodeSelectorSlot
      负责构建节点链路中的节点(DefualNode),将这些节点形成链路树
    • ClusterBuilderSlot
      负责构建某个资源的clusterNode,ClusterNode 可以保存资源的运行信息(响应时间,QPS,block数目,异常数)
    • staticSlot
      负责统计实时调用数据,包括运行信息,来源信息等
  • 规则判断部分

    • FlowSlot 则用于根据预设的限流规则,来进行流量控制;
    • AuthoritySlot 则根据配置的黑白名单和调用来源信息,来做黑白名单控制;
  • -DegradeSlot 则通过统计信息以及预设的规则,来做熔断降级;

    • SystemSlot 则通过系统的状态,例如 load1 等,来控制总的入口流量;

Sentinel源码分析-ProceesorSlotChain调用链及树状资源节点_第1张图片

你可能感兴趣的:(Sentinel,sentinel)