Springboot启动流程|Nacos注册中心
2023-11-06 14:50:44 1 举报
登录查看完整内容
Springboot启动流程|Nacos注册中心
作者其他创作
大纲/内容
用户页面执行商品导入
判断当前应用类型
启动设置好的容器,starting方法
是
设置应用的环境参数----->bindToSpringApplication(environment)
程序读取Excel
Springboot+Nacos服务注册流程(Client端)
开启事件--->ApplicationStartingEvent
容器运行-->listeners.running(context)
NacosDiscoveryAutoRegister(Bean)
ApplicationListener-获取spring.factories
刷新上下文----> refreshContext(context)
通过请求:/nacos/v1/ns/instance向服务端注册服务
ApplicationRunListener
nacos-client.jar
事件类型---> ApplicationPreparedEvent
设置应用命令参数:DefaultApplicationArguments
准备prepareEnvironment
getOrCreateEnvironment
运行listeners.running(context)
校验数据是否全部合法
ephemeral
设置configureHeadlessProperty
限时一分钟
写入缓存队列
结束
创建上下文--->createApplicationContext()
加载所有初始化容器
注册实例类型(永久和临时)
调用run方法
根据应用类型-->AnnotationConfigServletWebServerApplicationContext
日志事件处理
nacos-api.jar
多线程获取队列数据并写入数据库
设置计时器--StopWatch
new SpringApplication
否
停止计时器
NacosDiscoveryAutoConfiguration(Bean)
心跳检测方式:1.1 agent上报模式默认心跳间隔5秒;nacos会在超过15秒未收到心跳后将实例设置为不健康状态;超过30秒将实例删除;1.2 服务端主动检测服务端健康检查。nacos主动探知客户端健康状态,默认间隔为20秒;健康检查失败后实例会被标记为不健康,不会被立即删除。
NamingProxy
设置容器的参数----->listeners.environmentPrepared(environment) -->ApplicationEnvironmentPreparedEvent
SpringApplication.run()
事件类型----->ApplicationStartedEvent
结束-响应页面提示
isAutoRegister
Yes
SpringApplication
getListeners(args)
响应页面提示,数据全部合法正在写入存储
NamingServer的注册方法
服务CRUD接口
是否超过最大行数
AbstractApplicationContext的refresh
naco-discovery-springboot-autoconfig.jar
设置程序运行主类
Nacos服务端nacos-Naming
加载所有监听器
刷新上下文之后afterRefresh() --->可以定制化
加载系统参数configureEnvironment(***)
监听器启动-->listeners.started(context)
打印Banner--->printBanner(environment)
0 条评论
回复 删除
下一页