springcloud-nacos组件浅析-1

背景

  随着netflix各组件的闭源,可能得拥抱其它开源方案了,恰好阿里开源了nacos,那今天说说nacos作为注册中心的spirngcloud部分,后续部分再陆续学习。

组件分析

  打开nacos官网,就能看到nacos的springcloud项目的快速开始,会发现非常简单,无非就是3步,添加依赖、开启配置、配置属性,当然要提前准备好服务端并启动,这些都相当easy就不多说了,直接说说

核心组件,今天主要学习下NacosServiceRegistryAutoConfiguration和NacosDiscoveryClientConfiguration。

1、NacosServiceRegistryAutoConfiguration可以看到其主要添加了3个组件,NacosServiceRegistry、NacosRegistration、NacosAutoServiceRegistration.

springcloud-nacos组件浅析-1_第1张图片         springcloud-nacos组件浅析-1_第2张图片

springcloud-nacos组件浅析-1_第3张图片

 

  从这3个组件来看NacosRegistration就是要注册的服务实例,NacosServiceRegistry委托NamingService完成服务的注册 ,NacosAutoServiceRegistration是服务的入口(因为在配置类中前2个组件创建完,都交给了它),又看到AutoServiceRegistration和ApplicationListener,大概就能猜得到在监听到应用事件的时候启动注册,让NacosServiceRegistry工作,从中可以看到通过这3个组件完成了springcloud的注册规范内容,之后通过NamingService这个api整合springcloud和nacos。

  接下来看看服务发现部分,NacosDiscoveryClientConfiguration注册了NacosDiscoveryClient。

springcloud-nacos组件浅析-1_第4张图片  

  可以看到NacosDiscoveryClient实现springcloud规范,实际上服务发现委托给NacosServiceDiscovery去做,而 NacosServiceDiscovery会让NamingService去获取服务实例。

总结

  由此可见springcloud的服务注册与发现nacos版本实现起来非常简单,就是通过一个NamingService的api就实现了,那具体的服务发现和服务注册,都是nacos项目Naming模块实现了,下次继续学习Naming实现原理。

你可能感兴趣的:(springcloud,java,spring)