skywalking-service 主流程
2022-10-30 17:39:23 10 举报
skywalking-service 主流程
作者其他创作
大纲/内容
BootstrapFlow#makeSequence把所有模块按照依赖排序
.AbstractConfigurationProvider#notifyAfterCompleted其他模块都加载完成后
ModuleProvider#start启动所有模块
各种服务加载过程
ApplicationConfigLoader#loadConfig从 application.yml 中加载配置
ConfigurationModule动态配置加载
ApplicationConfigLoader#overrideConfigBySystemEnv使用环境变量替换配置
NacosConfigurationProvider#initConfigReader
ApplicationConfigLoader#selectConfig选出实际的配置
.ModuleProvider#prepare初始化一些与其他模块无关的东西
ModuleProvider#requiredCheck校验依赖模块
core核心模块
DynamicConfigurationService#registerConfigChangeWatcher向动态配置服务注册变更监听
ConfigWatcherRegister#registerConfigChangeWatcher注册监听器,在需要动态配置是添加监听
SourceReceiverImpl#scan扫描所有 SourceDispatcher
BootstrapFlow启动所有模块
GRPCServer#startettyServer#start启动服务
nacos 为例
grpcServer#initialize创建并初始化 GRPC
JettyServer#initialize创建并初始化 jetty
prepare
OAPServerStartUp#mainjar 入口
向 ModuleProvider#services中注册一系列服务类似于 spring 的 bean 管理单例模式
.BootstrapFlow#notifyAfterCompleted所有模块启动后通知所有模块
RunningMode.isInitMode()如果是 init 模式,则退出系统
CoreModuleProvider#start
核心方法为ModuleProvider#prepareModuleProvider#startModuleProvider#notifyAfterCompleted所有功能都通过该方式实现
CoreModuleProvider#prepare
ConfigWatcherRegister#configSync注册监听器,执行同步配置
ModuleManager#init各种初始化
notifyAfterCompleted
mode从环境变量中获取启动类型,当为 init 是会初始化数据库
DispatcherManager#forward在接收到数据是会调用,不同的SourceDispatcher 会处理相应数据
ModuleDefine#prepare解析配置文件
NacosConfigWatcherRegister#NacosConfigWatcherRegister开启 nacosConfigService
ApplicationConfigLoader#load加载配置文件
从 spi 中加载ModuleDefine ModuleProvider
OAPServerBootstrap#start
ModuleDefine#copyProperties把配置文件属性赋值到 ModuleConfig 对象中
0 条评论
下一页