前言
通过Nacos官方文档,我们可以先了解一个大概,本文主要讲客户端是如何将服务注册到Nacos中的! 不难发现客户端注册到Nacos中是通过Http请求的方式,将客户端数据注册到Nacos中的,那么接下来我们刨根问底来拿捏下源码级别的注册逻辑!
依赖
客户端依赖
<!--注册中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
注意下版本,不然和我演示的源码可能对不上 Nacos版本 这里Nacos的版本时1.4.1至于是源码启动还是程序包启动都无所谓了,本文只涉及到客户端的注册!
源码流程
我们客户端以SpringBoot工程为例,那么我们看Nacos客户端注册的流程可以从spring.factories中开始 SpringBoot工程启动后会自动注册spring.factories中配置的类
跟进NacosDiscoveryAutoConfiguration 切入NacosAutoServiceRegistration NacosAutoServiceRegistration中有个继承AbstractAutoServiceRegistration
切入AbstractAutoServiceRegistration 这里有一个点,就是ApplicationListener,简单说一下,就是实现这个ApplicationListener接口后,会监听一个WebServerInitializedEvent,触发后会调用onApplicationEvent方法! 切入NamingProxy 那么通过这行代码就是往Nacos中注册当前服务信息的!和官网也是能对得上的!
|