初始化过程
总体来说,是通过
- static 代码在第一次entry被触发时候进行初始化
- 通过java.util.ServiceLoader 装载实现类simpleHttp或者Netty-Http,ServiceLoader用途可以参看https://blog.youkuaiyun.com/qq_30739519/article/details/51164954
具体过程
- sphU/O类调用 com.alibaba.csp.sentinel.Env,ENV 类通过static code 调用com.alibaba.csp.sentinel.init.InitExecutor的.doInit()
- doinit 调用 ServiceLoader loader = ServiceLoader.load(InitFunc.class); 并执行没有init实现类的init()
- 有多个com.alibaba.csp.sentinel.init.InitFunc文件,在core及transport-common下都有,和hashboard有关的在transport下./sentinel-transport/sentinel-transport-common/src/main/resources/META-INF/services/com.alibaba.csp.sentinel.init.InitFunc,内容如下
com.alibaba.csp.sentinel.transport.init.CommandCenterInitFunc
com.alibaba.csp.sentin