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相关推荐

  1. Nacos源码系列—关于服务注册的那些事

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 nacos,即可免费获取源码 简介 首先我们在看Nacos源码之前,要 ...

  2. Nacos源码系列——第三章(全网最经典的Nacos集群源码主线剖析)

    上两个章节讲述了Nacos在单机模式下的服务注册,发现等源码剖析过程,实战当中 其实单机是远远不够的,那么Nacos是如何在集群模式下是如何保证节点状态同步,以及服 务变动,新增数据同步的过程的!   ...

  3. Nacos源码系列——第一章(Nacos核心源码主线剖析上)

    在讲具体的源码之前,我有几点想说明下,很多开发可能觉得源码不重要,甚至觉得互联网 的知识,目前够用就可以,也不需要多么精通.的确,在大多数的公司中,你能用你的知识 解决问题就可以,不一定非要涉及到源码 ...

  4. 全网最火的Nacos源码构建,你找不到第二个有我仔细的!!

    本章开始带大家构建Nacos源码,后面我会开始分析Nacos源码的细节,结合本人在工作之余用到的Nacos点点滴滴,如果想和我一起学Nacos,就好好看这篇吧,废话不多说,先告诉你们Nacos怎么通过 ...

  5. 下载Nacos源码并运行

    要研究Nacos源码自然不能用打包好的Nacos服务端jar包来运行,需要下载源码自己编译来运行. 下载Nacos源码 Nacos的GitHub地址:GitHub - alibaba/nacos: a ...

  6. nacos 启动_【Nacos源码之配置管理 一】阅读源码第一步,本地启动Nacos

    前言 在我们去阅读Nacos源码之前,我们得先了解Nacos是干嘛的,以及怎么用,这样有利于我们更容易去理解源码; 查看Nacos的官方文档,我们知道Naocs主要有以下特性: 配置中心 服务注册与发 ...

  7. 如何访问集群中指定的服务器,【Nacos源码之配置管理 六】集群模式下服务器之间是如何互相感知的...

    前言 我们用Nacos当配置中心的时候,上一篇文章中 [Nacos源码之配置管理 五]为什么把配置文件Dump到磁盘中 知道了,所有的配置文件都会Dump到服务器的本地磁盘中, 那么集群模式下: 服务 ...

  8. (Nacos源码解析五)Nacos服务事件变动源码解析

    Nacos源码解析系列目录 Nacos 源码编译运行 (Nacos源码解析一)Nacos 注册实例源码解析 (Nacos源码解析二)Nacos 服务发现源码解析 (Nacos源码解析三)Nacos 心 ...

  9. nacos源码修改编译(亲测)

    nacos源码修改编译 文章目录 nacos源码修改编译 内容概述 源码修改 源码编译 测试 内容概述 生产项目选型时选择nacos作为项目的注册中心,但是由于内网安全要求,用户名和密码必须加密传输, ...

最新文章

  1. 微信小程序的数字有部分会自动加粗的解决方法
  2. 前端学习(100):float注意点整理1
  3. 基于IDEA搭建JavaWeb入门项目结构(2021版)
  4. python--采集1(urllib模块)
  5. mysql三高讲解(一):1.1 客户端怎样连接mysql数据库
  6. c语言程序从源代码到二进制机器码,C语言源代码转变为可执行程序的过程
  7. matlab运算放大器概述,运算放大器概述
  8. FastAdmin 目录权限设置
  9. Shiro 实战教程(全)
  10. 渗透测试之XSS(跨站脚本攻击)
  11. HTML CSS实现 轮播图 遮罩层
  12. 虚幻4: 蓝图入门与进阶
  13. 2023-2029年中国无线城市建设行业发展形势分析及投资规划分析报告
  14. 基于Java毕业设计学习类视频网源码+系统+mysql+lw文档+部署软件
  15. Crowd 安装备注
  16. rk3288的fastboot和adb识别不了设备
  17. 笔记本电脑无故System占用很高解决方案
  18. Python脚本和C#的互相调用
  19. 使用ffmpeg调整音频音量
  20. python 抖音第三方登录_前后端分离抖音第三方授权登录

热门文章

  1. hdu 3501 欧拉函数
  2. 关于如何正确地在android项目中添加第三方jar包
  3. Direct3D 开发之旅 3D 游戏基本概念的介绍2
  4. Git.之.最小化配置
  5. 结合JDK源码看设计模式——桥接模式
  6. java之Spring实现控制反转
  7. thinkPHP增删改查的方法案例
  8. CrtInvertedIdx
  9. 《XNA高级编程:Xbox 360和Windows》3-6
  10. 大话设计模式—外观模式