背景

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

组件分析

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

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

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

springcloud-nacos组件浅析-1         springcloud-nacos组件浅析-1

springcloud-nacos组件浅析-1

 

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

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

springcloud-nacos组件浅析-1  

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

总结

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

相关文章:

  • 2021-06-11
  • 2022-12-23
  • 2022-12-23
  • 2022-01-18
  • 2022-01-10
  • 2021-04-24
  • 2021-06-04
  • 2021-12-03
猜你喜欢
  • 2021-12-22
  • 2021-07-22
  • 2021-09-05
  • 2022-12-23
  • 2022-12-23
  • 2021-10-27
  • 2022-01-23
相关资源
相似解决方案