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

文章目录

  • 前言
  • 一、nacos源码下载编译
    • 1.1源码下载
    • 1.2 解压并且打开
    • 1.3 下载安装protoc
    • 1.4 本地启动nacos
  • 二、客户端服务注册到nacos
    • 2.1.修改本地配置文件注册到本地nacos
    • 2.2 启动server服务
  • 总结


前言

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

一、nacos源码下载编译

1.1源码下载

源码下载地址
这里我下载的是nacos2.2.3版本
5.springcloudalibaba nacos 2.2.3源码下载并且注册服务到nacos_第1张图片

1.2 解压并且打开

使用idea打开解压后的文件,得到如下工程。
5.springcloudalibaba nacos 2.2.3源码下载并且注册服务到nacos_第2张图片

1.3 下载安装protoc

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

protoc --java_out=./java ./proto/consistency.proto
protoc --java_out=./java ./proto/Data.proto

编译完成后会多出这个目录
5.springcloudalibaba nacos 2.2.3源码下载并且注册服务到nacos_第6张图片

1.4 本地启动nacos

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

-Dnacos.standalone=true

5.springcloudalibaba nacos 2.2.3源码下载并且注册服务到nacos_第7张图片
登录nacos本地管理界面 http://localhost:8848/nacos
5.springcloudalibaba nacos 2.2.3源码下载并且注册服务到nacos_第8张图片
可以看到本地已经成功启动了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>

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

2.2 启动server服务

5.springcloudalibaba nacos 2.2.3源码下载并且注册服务到nacos_第9张图片
可以看到服务已经注册到nacos上去了。

总结

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

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