Nacos源码NacosAutoServiceRegistration
NacosAutoServiceRegistration
源码如图:
可以看到在初始化时,其父类AbstractAutoServiceRegistration
也被初始化了。
AbstractAutoServiceRegistration
如图:
可以看到它实现了ApplicationListener
接口,监听Spring容器启动过程中的事件。
在监听到WebServerInitializedEvent
(web服务初始化完成)的事件后,执行了bind
方法。
其中的bind方法如下:
public void bind(WebServerInitializedEvent event) {// 获取 ApplicationContextApplicationContext context = event.getApplicationContext();// 判断服务的 namespace,一般都是nullif (context instanceof ConfigurableWebServerApplicationContext) {if ("management".equals(((ConfigurableWebServerApplicationContext) context).getServerNamespace())) {return;}}// 记录当前 web 服务的端口this.port.compareAndSet(0, event.getWebServer().getPort());// 启动当前服务注册流程this.start();
}
其中的start方法流程:
public void start() {if (!isEnabled()) {if (logger.isDebugEnabled()) {logger.debug("Discovery Lifecycle disabled. Not starting");}return;}// 当前服务处于未运行状态时,才进行初始化if (!this.running.get()) {// 发布服务开始注册的事件this.context.publishEvent(new InstancePreRegisteredEvent(this, getRegistration()));// ☆☆☆☆开始注册☆☆☆☆register();if (shouldRegisterManagement()) {registerManagement();}// 发布注册完成事件this.context.publishEvent(new InstanceRegisteredEvent<>(this, getConfiguration()));// 服务状态设置为运行状态,基于AtomicBooleanthis.running.compareAndSet(false, true);}}
其中最关键的register()方法就是完成服务注册的关键,代码如下:
protected void register() {this.serviceRegistry.register(getRegistration());
}
此处的this.serviceRegistry就是NacosServiceRegistry:
Nacos源码NacosAutoServiceRegistration相关推荐
- Nacos源码系列—关于服务注册的那些事
点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 nacos,即可免费获取源码 简介 首先我们在看Nacos源码之前,要 ...
- Nacos源码系列——第三章(全网最经典的Nacos集群源码主线剖析)
上两个章节讲述了Nacos在单机模式下的服务注册,发现等源码剖析过程,实战当中 其实单机是远远不够的,那么Nacos是如何在集群模式下是如何保证节点状态同步,以及服 务变动,新增数据同步的过程的! ...
- Nacos源码系列——第一章(Nacos核心源码主线剖析上)
在讲具体的源码之前,我有几点想说明下,很多开发可能觉得源码不重要,甚至觉得互联网 的知识,目前够用就可以,也不需要多么精通.的确,在大多数的公司中,你能用你的知识 解决问题就可以,不一定非要涉及到源码 ...
- 全网最火的Nacos源码构建,你找不到第二个有我仔细的!!
本章开始带大家构建Nacos源码,后面我会开始分析Nacos源码的细节,结合本人在工作之余用到的Nacos点点滴滴,如果想和我一起学Nacos,就好好看这篇吧,废话不多说,先告诉你们Nacos怎么通过 ...
- 下载Nacos源码并运行
要研究Nacos源码自然不能用打包好的Nacos服务端jar包来运行,需要下载源码自己编译来运行. 下载Nacos源码 Nacos的GitHub地址:GitHub - alibaba/nacos: a ...
- nacos 启动_【Nacos源码之配置管理 一】阅读源码第一步,本地启动Nacos
前言 在我们去阅读Nacos源码之前,我们得先了解Nacos是干嘛的,以及怎么用,这样有利于我们更容易去理解源码; 查看Nacos的官方文档,我们知道Naocs主要有以下特性: 配置中心 服务注册与发 ...
- 如何访问集群中指定的服务器,【Nacos源码之配置管理 六】集群模式下服务器之间是如何互相感知的...
前言 我们用Nacos当配置中心的时候,上一篇文章中 [Nacos源码之配置管理 五]为什么把配置文件Dump到磁盘中 知道了,所有的配置文件都会Dump到服务器的本地磁盘中, 那么集群模式下: 服务 ...
- (Nacos源码解析五)Nacos服务事件变动源码解析
Nacos源码解析系列目录 Nacos 源码编译运行 (Nacos源码解析一)Nacos 注册实例源码解析 (Nacos源码解析二)Nacos 服务发现源码解析 (Nacos源码解析三)Nacos 心 ...
- nacos源码修改编译(亲测)
nacos源码修改编译 文章目录 nacos源码修改编译 内容概述 源码修改 源码编译 测试 内容概述 生产项目选型时选择nacos作为项目的注册中心,但是由于内网安全要求,用户名和密码必须加密传输, ...
最新文章
- 微信小程序的数字有部分会自动加粗的解决方法
- 前端学习(100):float注意点整理1
- 基于IDEA搭建JavaWeb入门项目结构(2021版)
- python--采集1(urllib模块)
- mysql三高讲解(一):1.1 客户端怎样连接mysql数据库
- c语言程序从源代码到二进制机器码,C语言源代码转变为可执行程序的过程
- matlab运算放大器概述,运算放大器概述
- FastAdmin 目录权限设置
- Shiro 实战教程(全)
- 渗透测试之XSS(跨站脚本攻击)
- HTML CSS实现 轮播图 遮罩层
- 虚幻4: 蓝图入门与进阶
- 2023-2029年中国无线城市建设行业发展形势分析及投资规划分析报告
- 基于Java毕业设计学习类视频网源码+系统+mysql+lw文档+部署软件
- Crowd 安装备注
- rk3288的fastboot和adb识别不了设备
- 笔记本电脑无故System占用很高解决方案
- Python脚本和C#的互相调用
- 使用ffmpeg调整音频音量
- python 抖音第三方登录_前后端分离抖音第三方授权登录