通过Nacos官方文档,我们可以先了解一个大概,本文主要讲客户端是如何将服务注册到Nacos中的!
不难发现客户端注册到Nacos中是通过Http请求的方式,将客户端数据注册到Nacos中的,那么接下来我们刨根问底来拿捏下源码级别的注册逻辑!
客户端依赖
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery2.1.0.RELEASE
注意下版本,不然和我演示的源码可能对不上
Nacos版本
这里Nacos的版本时1.4.1至于是源码启动还是程序包启动都无所谓了,本文只涉及到客户端的注册!
我们客户端以SpringBoot工程为例,那么我们看Nacos客户端注册的流程可以从spring.factories中开始
SpringBoot工程启动后会自动注册spring.factories中配置的类
跟进NacosDiscoveryAutoConfiguration
切入NacosAutoServiceRegistration
NacosAutoServiceRegistration中有个继承AbstractAutoServiceRegistration
切入AbstractAutoServiceRegistration
这里有一个点,就是ApplicationListener,简单说一下,就是实现这个ApplicationListener接口后,会监听一个WebServerInitializedEvent,触发后会调用onApplicationEvent方法!
实现类NacosNamingService
这里就有两个重要的代码,一个是客户端注册,另一个是客户端心跳,本文主讲客户端注册,心跳请切入到Nacos-客户端心跳机制
切入NamingProxy
那么通过这行代码就是往Nacos中注册当前服务信息的!和官网也是能对得上的!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)