• 5.springcloudalibaba nacos 2.2.3源码下载并且注册服务到nacos



    前言

    前面已经完成了springcloudalibaba网关,限流和服务间的调用,现在来阅读下nacos源码,进一步加深对springcloudalibaba的理解,这里的源码阅读仅为自己的理解,如果有不对的可以指出,不一定就是完成正确的。

    一、nacos源码下载编译

    1.1源码下载

    源码下载地址
    这里我下载的是nacos2.2.3版本
    在这里插入图片描述

    1.2 解压并且打开

    使用idea打开解压后的文件,得到如下工程。
    在这里插入图片描述

    1.3 下载安装protoc

    这里主要是因为nacos使用的序列化协议不是java自带的,使用的Protobuf,所以要先安装这个编译器,反编译出java类,才能使用nacos正常功能。
    下载地址为:protoc下载地址
    在这里插入图片描述
    解压到本地你的安装目录,并且添加变量到系统环境变量
    在这里插入图片描述
    编译proto文件,在源码这个目录下编译文件
    在这里插入图片描述

    protoc --java_out=./java ./proto/consistency.proto
    protoc --java_out=./java ./proto/Data.proto
    
    • 1
    • 2

    编译完成后会多出这个目录
    在这里插入图片描述

    1.4 本地启动nacos

    启动类为
    nacos-2.2.3\console\src\main\java\com\alibaba\nacos\Nacos.java
    编辑idea环境变量,增加java启动参数

    -Dnacos.standalone=true
    
    • 1

    在这里插入图片描述
    登录nacos本地管理界面 http://localhost:8848/nacos
    在这里插入图片描述
    可以看到本地已经成功启动了nacos服务,再启动客户端服务注册到本地的nacos服务,就可以开始源码阅读调试了。

    二、客户端服务注册到nacos

    新建一个springcloudalibaba项目服务,这里怎么创建就不演示了,附pom文件

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.springcloudalibaba</groupId>
        <artifactId>server</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>server</name>
        <description>Demo project for Spring Boot</description>
        <properties>
            <java.version>8</java.version>
            <spring-boot.version>2.6.13</spring-boot.version>
            <spring-cloud.version>2021.0.5</spring-cloud.version>
            <spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!-- SpringCloud Alibaba Nacos -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
    
            <!-- SpringCloud Alibaba Nacos Config -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bootstrap</artifactId>
            </dependency>
        </dependencies>
        <dependencyManagement>
        <dependencies>
        <!-- SpringCloud 微服务 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    
        <!-- SpringCloud Alibaba 微服务 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>${spring-cloud-alibaba.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    
        <!-- SpringBoot 依赖配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>2.6.0</version>
                    <configuration>
                        <excludes>
                            <exclude>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                            </exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93

    2.1.修改本地配置文件注册到本地nacos

    # Tomcat
    server:
      port: 8081
    
    # Spring
    spring:
      application:
        # 应用名称
        name: server
      profiles:
        # 环境配置
        active: dev
      main:
        allow-bean-definition-overriding: true
      cloud:
        nacos:
          discovery:
            # 服务注册地址
            server-addr: localhost:8848
            group: alibaba
            namespace: f72d6fd6-406e-4b2f-843c-f23c8f31f1ce
            register-enabled: true
          config:
            # 配置中心地址
            server-addr: localhost:8848
            # 配置文件格式
            file-extension: yml
            group: ${spring.cloud.nacos.discovery.group}
            namespace: ${spring.cloud.nacos.discovery.namespace}
            shared-configs[0]:
              data-id: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 配置文件名-Data Id
              group: ${spring.cloud.nacos.discovery.group}   # 默认为DEFAULT_GROUP
              refresh: false
    #    sentinel:
    #        #取消懒加载
    #      eager: true
    #        #sentinel服务地址
    #      transport:
    #        dashboard: 192.168.184.131:8480
    logging:
      level:
        com.alibaba.nacos.client: info
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    2.2 启动server服务

    在这里插入图片描述
    可以看到服务已经注册到nacos上去了。

    总结

    1.由于篇幅太长了,下一篇幅开始源码解析,这里仅展示如何下载源码并且运行源码,并且注册服务到nacos上,更方便研究源码。
    2.protoc必须安装编译,否则那个模块会报错。
    3.注意nacos版本和springcloudalibaba的版本匹配问题,如果不知道是否匹配,可以按我给的pom文件,直接用上面的版本即可。

  • 相关阅读:
    QImage
    Apple 已弃用 NavigationView,使用 NavigationStack 和 NavigationSplitView 实现 SwiftUI 导航
    用友vs金蝶产品分析(云星空与YonSuite)
    RabbitMQ事务消息
    智慧隧道:TSINGSEE青犀远程视频AI智能监管平台保障隧道施工安全
    [附源码]java毕业设计天悦酒店管理系统
    2022字节跳动Byte Camp夏令营:53所国内外高校学员云端完成24个项目
    Ubuntu下无法输入中文问题解决
    小程序源码:全新外卖侠cps5.6全套微信小程序源码下载-多玩法安装简单
    VS Code调试C代码
  • 原文地址:https://blog.csdn.net/qq_34526237/article/details/133762929