Sentinel源码解析

Sentinel的核心源码在于客户端,服务端主要作为Dashboard。客户端在接收到服务端的规则后,构建责任链进行流量控制。SphU.entry()是入口,通过 SPI 机制加载 Slot 并按顺序执行。每个 Slot 实现相同接口,如 NodeSelectorSlot、ClusterBuilderSlot 和 FlowSlot,执行不同任务,如权限检查、流量校验等。如果在流程中遇到异常,会触发不同的异常处理策略,如限流处理和降级熔断。Sentinel提供了全面的资源管理和保护机制。
摘要由CSDN通过智能技术生成

核心源码都在客户端,服务端只是个Dashboard!!!

在服务端配置好规则后,服务端会把规则推到客户端里去【存在客户端内存里】

服务端记录客户端对外提供的一些接口

客户端引用了依赖并启动后,会定时把自己的信息注册到Sentinel服务端去,并且定时发信息保持心跳

主线

注解详情

这个类会初始很多bean,其中SentinelResourceAspect最重要

会对@SentinelResource注解做切入

用的环绕通知

核心的源码逻辑就一行

SphU.entry( )

一开始肯定是空,初始化个链条

生成个构造器,最终再调用构造器的build()方法

如何构建的构造器的build()方法?

spi机制,主要用于解耦。

加载一堆的类,然后各种解析,然后最后放到一个list里面去。

通过spi机制,把本地文件里的一大堆类加载出来放到sortedSlotList里

  • 29
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值