nacos集成springboot

本文详细介绍了如何在SpringBoot项目中集成Nacos,包括版本选择、资源下载、环境配置(Java、Maven和Nacos),以及如何设置SpringCloud和SpringCloudAlibaba的依赖。还展示了如何配置Nacos作为注册中心和配置中心,以及处理多配置文件的情况。
摘要由CSDN通过智能技术生成

nacos集成springboot

1.资源准备

1.1 版本选择

使用nacos作为注册中心,一般都是spring cloud项目。因此我们需要确定项目所需依赖的版本。

spring boot 、spring cloud、 、spring cloud alibaba版本之间的选择官网建议: 版本说明 Wiki

根据官网建议: 本次demo版本选择为 spring boot 3.0.2、spring cloud 2022.0.0、spring cloud alibaba 2022.0.0.0-RC2、nacos 2.2.1 (因为spring cloud alibaba最新版本只能到2022.0.0.0-RC2,这套组合是现在能选择的最新的依赖版本)

在这里插入图片描述

在这里插入图片描述

因为项目使用的是spring boot 3.x版本,因此要求jdk版本至少为17

maven版本建议3.2.x及以上

1.2资源下载

1.jdk下载地址

​ 官方: Oracle官网下载地址

​ 国内镜像下载地址:JDK下载 - 编程宝库 (codebaoku.com)

2.maven下载地址:

官网:Maven – Download Apache Maven

国内下载地址:Index of /dist/maven (apache.org)

3.nacos下载

官网:GitHub nacos(可以选择别人编译好的,也可以下载源码自己编译)

注: 下图只是演示,demo选择的nacos版本是2.2.1
在这里插入图片描述

在这里插入图片描述

如果选择源码编译,可以选择国内gitee地址,下载源码比较快

// 如果使用git下载 这复制下面命令
git clone https://gitee.com/mirrors/Nacos.git
cd nacos/
//需要提前配置好maven的环境变量
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  

ls -al distribution/target/

// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin

推荐直接下载编译过的文件。

2.环境配置

2.1 java环境配置

注: 本次demo的nacos是安装在linux上,安装的jdk只是为了满足nacos的运行,并非项目中使用的jdk版本。 nacos 2.2.1 使用jdk8即可启动。

window版本参考:JDK 安装与环境变量配置(Win10详细版)_jdk环境变量配置-CSDN博客

linux安装jdk(本地demo nacos运行在 linux centos系统中)

  1. 把下载的linux版本jdk上传至linux系统中

    使用ftp工具上传到linux中

  2. 解压jdk,确定安装目录

    进入上传jdk的文件
    cd /xx/xx/xx
    解压jdk
    tar -xvf jdk-x-x.tar
    解压完成 进入解压文件
    cd jdk-x-x
    确定jdk安装路径
    [root@localhost jdk1.8.0_241]# pwd
    /wz/devTool/java/jdk1.8.0_241
    
  3. 修改/etc/profile文件,添加 JAVA_HOME

    打开环境变量配置文件
    vim /etc/profile
    
    在最下面添加
    export JAVA_HOME="pwd显示的jdk安装路径"
    export PATH=$PATH:$JAVA_HOME/bin
    
    保存退出 重新读取环境变量
    source /etc/profile
    
  4. 验证 java -version

[root@localhost jdk1.8.0_241]# java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

输入java -version能够正确输出版本就安装完成

2.2 maven环境配置

参考地址: Maven配置教程-CSDN博客

2.3 nacos安装配置

1.使用ftp工具上传 下载的 nacos服务至 linux系统中.

上传完成后 解压
unzip nacos-server-xx.zip -d nacos-2.2.1

2.进入解压完成的nacos服务中 修改conf目录下配置文件

cd nacos上传目录/nacos-2.2.1/nacos/conf
查看conf下文件  进入 application.properties 配置文件
[root@localhost conf]# ls
1.4.0-ipv6_support-update.sql  application.properties.example  derby-schema.sql  nacos-logback.xml
application.properties         cluster.conf.example            mysql-schema.sql
vim application.properties
如果端口冲突需要修改端口
server.port=8848
这个是必须要加的  不加无法启动
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
修改完成 保存 退出

进入 bin目录 启动服务
cd ../bin

nohup sh startup.sh -m standalone &

nacos.core.auth.plugin.nacos.token.secret.key的生成是复制官网demo Nacos 快速开始 可以使用官网插件生成自己的key

3.验证

在浏览器 输入ip:端口/nacos 进入nacos web页面

在这里插入图片描述

默认账号密码为 nacos nacos

如果访问不到则查看防火墙 状态, 关闭防火墙

3.创建工程验证注册中心

3.1 创建工程

1.使用idea 创建一个 空maven工程

2.添加依赖

本地demo 依赖 jdk 17、spring boot 3.0.2 spring cloud 2022.0.0

spring cloud alibab 2022.0.0-RC2

参考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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.2</version>
        <relativePath/>
    </parent>
    <groupId>com.example</groupId>
    <artifactId>config</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>config</name>
    <description>config</description>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2022.0.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2022.0.0.0-RC2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2022.0.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2022.0.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>17</source>
                    <target>17</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

3.2 添加配置文件

在 resources 文件夹下 创建 application.yml文件

参考配置

注: 该配置只是想验证 服务是否注册成功,测试接口是否正常并非最终版本

server:
  port: 8080
spring:
  application:
    name: test
  cloud:
    nacos:
      config:
        import-check:
          enabled: false
        server-addr: 192.168.11.56:8848
        namespace: public
        enabled: true
        file-extension: yaml
        group: DEFAULT_GROUP
      discovery:
        server-addr: ${spring.cloud.nacos.config.server-addr}
        enabled: true
        namespace: ${spring.cloud.nacos.config.namespace}
        group: ${spring.cloud.nacos.config.group}
test:
  value: 我是本地版本

3.3 启动类

package com.wz.config;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class ConfigApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigApplication.class, args);
    }

}

3.4 测试接口

package com.wz.config.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RefreshScope
@RestController
@RequestMapping("test")
public class TestController {

    @Value("${test.value}")
    private String value;

    @GetMapping("get")
    public String returnValue() {

        return value;

    }

}

3.5启动服务

1.查看控制台

在这里插入图片描述

2.测试接口

在这里插入图片描述

3.查看nacos注册中心

在这里插入图片描述

demo 工程集成nacos discover成功

4.验证nacos 配置中心

4.1 创建配置

在这里插入图片描述

data id 也有默认的命名规则,如果不自动data id则是按照

s p r i n g . a p p l i c a t i o n . n a m e − {spring.application.name}- spring.application.name{spring.profiles.active}.${spring.cloud.nacos.config.file-extension} 这个规则

具体参考: Nacos Spring Cloud 快速开始

在这里插入图片描述

4.2修改配置文件

添加配置参考yml

server:
  port: 8080
spring:
  application:
    name: test
  cloud:
    nacos:
      config:
        server-addr: 192.168.11.56:8848
        namespace: public
        enabled: true
        file-extension: yaml
        group: DEFAULT_GROUP
      discovery:
        server-addr: ${spring.cloud.nacos.config.server-addr}
        enabled: true
        namespace: ${spring.cloud.nacos.config.namespace}
        group: ${spring.cloud.nacos.config.group}
  config:
    import:
      - optional:nacos:test-test1
test:
  value: 我是本地版本

4.3 启动服务,验证

服务启动重新请求接口

在这里插入图片描述

nacos注册中心成功

5.多配置文件

5.1 加载多配置

在nacos上新增配置文件

在这里插入图片描述

yml修改 删除discover配置 新增一条spring cloud import配置

参考

server:
  port: 8080
spring:
  application:
    name: test
  cloud:
    nacos:
      config:
        server-addr: 192.168.11.56:8848
        namespace: public
        enabled: true
        file-extension: yaml
        group: DEFAULT_GROUP
     
  config:
    import:
      - optional:nacos:test-test1
      - optional:nacos:test-dev
test:
  value: 我是本地版本

5.2启动验证

启动成功

在这里插入图片描述

注册成功

在这里插入图片描述

则证明读取到了test-dev配置文件上的内容

验证接口接口

在这里插入图片描述

因为两份配置文件都配置了test.value 发现接口读取到的是 test-dev的值

5.3 调换配置文件顺序

参考yaml

server:
  port: 8080
spring:
  application:
    name: test
  cloud:
    nacos:
      config:
        server-addr: 192.168.11.56:8848
        namespace: public
        enabled: true
        file-extension: yaml
        group: DEFAULT_GROUP
  config:
    import:
      - optional:nacos:test-dev
      - optional:nacos:test-test1
test:
  value: 我是本地版本

在这里插入图片描述

重启服务查看接口

在这里插入图片描述

结论: 多个配置文件有相同配置项 会覆盖之前配置

  • 16
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Nacos for Spring Boot 2.5 是一个用于集成 NacosSpring Boot 2.5 版本的开源项目。Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台,而 Spring Boot 是一个用于创建独立运行的 Spring 应用程序的开发框架。Nacos for Spring Boot 2.5 提供了一种简单和高效的方式来将 Nacos 功能与 Spring Boot 2.5 版本集成在一起。 首先,Nacos for Spring Boot 2.5 具有自动装配功能,可以方便地将 Nacos 的配置管理、服务注册和发现等功能注入到 Spring Boot 2.5 的应用程序中。这样,开发人员可以很容易地使用 Nacos 来管理应用程序的配置信息,并且将应用程序注册到 Nacos 的服务注册中心中,实现服务的自动发现和调用。 其次,Nacos for Spring Boot 2.5 提供了一组方便的注解和工具类,可以更加简洁地实现与 Nacos 的交互。例如,使用 @NacosValue 注解可以轻松地从 Nacos 的配置中心读取配置值,而使用 @NacosPropertySource 注解可以方便地将 Nacos 的配置中心作为属性源集成Spring 环境中。 此外,Nacos for Spring Boot 2.5 还提供了一些额外的功能,如 Nacos 的服务熔断、限流和降级等特性的自动集成,以及与 Spring Cloud、Dubbo 等其他微服务框架的无缝集成等。这些功能使得开发人员可以更加方便地利用 NacosSpring Boot 2.5 构建高可用、可扩展的微服务应用程序。 总之,Nacos for Spring Boot 2.5 提供了一种简单、高效和可靠的方式来集成 NacosSpring Boot 2.5。它使得开发人员可以更加轻松地使用 Nacos 的功能来管理配置和服务,并且能够更好地构建和维护现代化的微服务应用程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值