Sentinel原理及调用链解析
需积分: 0 107 浏览量
更新于2024-01-17
收藏 2.14MB PDF 举报
Sentinel是一款开源的分布式系统的流量防卫系统,它可以有效地保护服务不受流量超载的影响。Sentinel主要通过限流、熔断降级、系统自适应、热点参数流控等功能,来对流量进行有效的管理和保护。而Sentinel的核心原理就是一系列的Slot组成的调用链。每个Slot都有着不同的功能职责,用于保证整个流程的顺畅运行。
首先,我们来了解一下Sentinel的原理-调用链。首先,整个调用链是基于ThreadLocal来实现的。当一个请求到来时,首先会从ThreadLocal中获取相关的上下文信息,如果能获取到,则直接返回;如果获取不到,则会继续执行下一步。接着,会从一个static的map中根据上下文的名称获取相关的信息,如果能获取到,则直接返回。这样,就可以保证整个请求的上下文信息都能得到有效的管理和保护。
接下来,我们来分析一下每种Slot的功能职责。NodeSelectorSlot是负责收集资源的路径,将这些资源的调用路径以树状结构存储起来,用于根据调用路径来限流降级。ClusterBuilderSlot用于存储资源的统计信息以及调用者信息,例如该资源的RT、QPS、thread count等,这些信息将作为多维度限流、降级的依据。StatisticsSlot则用于记录、统计不同维度的runtime信息。SystemSlot通过系统的状态,例如load1等,来控制总的入口流量。AuthoritySlot根据黑白名单来做相应的控制。FlowSlot根据预设的限流规则以及前面Slot统计的状态来进行限流。DegradeSlot通过统计信息以及预设的规则来进行熔断降级。
在整个流程中,每个Slot执行完业务逻辑处理后,会调用fireEntry()方法,该方法将会触发下一个节点的entry方法,下一个节点又会调用其fireEntry,以此类推直到最后。这种方式保证了整个调用链的顺畅运行。
总结来说,Sentinel的原理-调用链通过一系列的Slot组成的调用链,来对流量进行有效的管理和保护。每个Slot都有着不同的功能职责,用于保证整个流程的顺畅运行。这种方法有效地保护了服务不受流量超载的影响,让服务能够更加可靠、稳定地运行。Sentinel的原理-调用链为分布式系统的流量保护提供了一种有效的解决方案,是当前流量防卫系统中的一大利器。
2022-08-03 上传
2022-08-03 上传
2022-08-03 上传
2022-08-03 上传
2019-01-20 上传
2021-10-11 上传
2022-11-02 上传
2022-11-17 上传
点击了解资源详情
阿汝娜老师
- 粉丝: 32
- 资源: 309
最新资源
- Programming_Microsoft_Windows_CE_.NET,_Third_Edition
- 联通短信网关协议SGIP1.2协议
- 网络工程师级考试大纲
- 经典的windows msdn的XML基础
- 深入浅出设计模式 电子书pdf格式
- xiaosongshu
- EJB3.0实例教程
- blazeds_devguide
- swf_file_format_spec_v10.pdf
- 技术白皮书:使用Oracle ADF 11g重新开发Oracle Forms应用程序
- java2实用教程(第3版例子代码)
- c++模板库c++模板库
- Cisco无线网络技术和解决方案
- zigbee芯片和模块选型
- vc 自动升级源代码
- java事务处理策略