Sentinel源码解析图解
2022-02-16 23:06:19 0 举报
登录查看完整内容
Sentinel内核源码分析图解
作者其他创作
大纲/内容
限流/熔断?
DefaultNode(nodeA)
ParamFlowSlot
DegradeSlot
RT
ClusterNode(nodeA)
引用
否: 不进入Sentinel核心流程处理
SystemSlot系统保护
是否开启限流熔断
根据规则判断是否触发限流、熔断
windowStart:500
CtSph.entry
资源1
LogSlot
StatisticNode
EXCEPTION
windowLengthInMs: 500
Y
BLOCK
资源2
EntranceNode
App1
DefaultNode(nodeB)
ContextUtil.getContext()获取调用链上下文
MetricBucket
Cluster Node A
NodeSelectorSlot
时间窗口总时长:1000ms
FlowSlot
StatisticSlot
SystemSlot
Sentinel中的调用链和统计信息的整体关系
PASS
WindowWrap[1]
BlockException
App2
Context.ROOT
FlowSlot流量控制
StatisticSlot监控统计
N(正常结束)
SUCCESS
windowStart:1500
windowStart:1000
---MORE---
Cluster Node B
ClusterNode
AuthoritySlot
entranceNode2
ClusterBuilderSlot
向前滚动1s
DegradeSlot熔断降级
资源...
Sentinel ,资源和SlotChain对应关系
Cluster Node C
ProcessChainchain#entry执行slot chain处理链
MyCustomSlot自定义实现
DefaultProcessorSlotChain
ArrayMetric
DefaultNode(nodeC)
App1/App2: 表示来源名称(origin),相同资源且相同来源共享一个StatisticNode。
Sentinel中滑动窗口的整体结构
同一个链路下访问不同的资源时。
entranceNode1
WindowWrap[0]
lookProcessChain(resourceWrapper)为当前资源加载Slot处理链
CtSph#entryWithPriority
windowStart:0
Sentinel中的调用链和统计信息的整体关系-简图
SlotChainBuilder(SPI扩展机制)
Sentinel原理流程图
build()
LeapArray
0 条评论
回复 删除
下一页