微服务学习-SpringCloud -Nacos (服务注册源码学习)

这篇具有很好参考价值的文章主要介绍了微服务学习-SpringCloud -Nacos (服务注册源码学习)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

源码版本及下载

此次源码版本为1.4.1,2.x版本在服务请求时使用了grpc的方式,所以先以1.4.1版本学习,后续再看2.x版本。
源码下载地址:: link
打开页面后,下拉到最下面,下载nacos-1.4.1.zip,解压导入idea即可。

服务注册核心流程图(看不清请双击打开大图)

微服务学习-SpringCloud -Nacos (服务注册源码学习)
此图主要是对核心注册流程进行了大概梳理,可以在后续详细看源码时配合互补。

源码详解

客户端注册源码

在微服务使用nacos需要在pom文件中引入依赖:文章来源地址https://www.toymoban.com/news/detail-408457.html

<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
	<version>2.2.5.RELEASE</version>
</dependency>
  • 开始分析客户端源码
    SpringCloud这一套组件都是基于SpringBoot开发的,那么SpringBoot引入其它组件的方式是什么呢?
    自动装配
    所以第一步,我们先找它的在自动装配类。
    微服务学习-SpringCloud -Nacos (服务注册源码学习)
    打开文件:
    微服务学习-SpringCloud -Nacos (服务注册源码学习)
    由类名推断服务注册的自动装配类为:
    com.alibaba.cloud.nacos.registry.NacosServiceRegistryAutoConfiguration
    我们打开此类:
    微服务学习-SpringCloud -Nacos (服务注册源码学习)
    对应我画的流程图,我们重点关注第一个和第三个bean。
    先看NacosAutoServiceRegistration。
    当Springboot启动时,会发布事件。我们来看NacosAutoServiceRegistration,继承了AbstractAutoServiceRegistration,
    微服务学习-SpringCloud -Nacos (服务注册源码学习)
    在看AbstractAutoServiceRegistration类,我们发现它实现了ApplicationListener。
    微服务学习-SpringCloud -Nacos (服务注册源码学习)
    当我们实现了ApplicationListener时,我们就需要实现它的onApplicationEvent方法。
  public void onApplicationEvent(WebServerInitializedEvent event) {
        this.bind(event);
    }

    /** @deprecated */
    @Deprecated
    public void bind(WebServerInitializedEvent event) {
        ApplicationContext context = event.getApplicationContext();
        if (!(context instanceof ConfigurableWebServerApplicationContext) || !"management".equals(((ConfigurableWebServerApplicationContext)context).getServerNamespace())) {
            this.port.compareAndSet(0, event.getWebServer().getPort());
            this.start();
        }

到了这里,关于微服务学习-SpringCloud -Nacos (服务注册源码学习)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包