聊聊Nacos的服务注册和心跳检测

Posted 周杰伦本人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊聊Nacos的服务注册和心跳检测相关的知识,希望对你有一定的参考价值。

聊聊Nacos的服务注册和心跳检测

nacos可以说在如今的微服务系统中是比较火的一个框架,之前的文章中也有所介绍,今天我再带领大家梳理一下

当我们使用Nacos的时候,会在启动上添加@EnableDiscoveryClient注解,这个注解的意思的开启注册发现,我们从这个注解作为入口出发,深入分析一下源码是怎么实现把服务注册到Nacos服务器上的功能的

客户端处理

注解导入了EnableDiscoveryClientImportSelector类,而EnableDiscoveryClientImportSelector继承了SpringFactoryImportSelector类,重写了selectImports()方法,方法中把AutoServiceRegistrationConfiguration添加到 集合中,这样就能实现AutoServiceRegistrationConfiguration配置的类的自动装配,

我们知道使用@EnableAutoConfiguration 注解后,springboot会加载spring.factories中的EnableAutoConfiguration定义的类,这里会加载NacosServiceRegistryAutoConfiguration等类

NacosServiceRegistryAutoConfiguration定义了三个类,NacosServiceRegistry类是向注册中心注册服务,NacosRegistration是用来存储nacos的信息,NacosAutoServiceRegistration就是实现服务的自动注册的类,它继承了AbstractAutoServiceRegistration类,AbstractAutoServiceRegistration实现了ApplicationListener接口,监听事件执行bind()方法,最终会执行NacosServiceRegistry的register()方法进行注册,

register()方法中主要实现了获取serviceId,然后创建Instance实例对象,然后调用NacosNamingService的registerInstance(),参数正是这两个参数