SpringCloud搭建Nacos配置中心

Nacos(阿里巴巴开源项目)是一个动态服务发现、配置管理和服务管理平台。它的配置中心功能允许您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。让我们一起探讨一下 Nacos 作为配置中心的基本用法:

版本说明

        SpringBoot:2.6.13

        SpringAlibabaCloud:2021.0.5.0

        Nacos:2.2.0

在项目中使用Nacos配置中心,需要进行以下步骤:

1. 引入Nacos客户端依赖
在项目的pom.xml文件中添加Nacos客户端的依赖,可以使用以下Maven坐标:

<?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>2.6.13</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>demo</name>
    <description>demo</description>
    <properties>
        <java.version>17</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</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>2021.0.5.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2021.0.5.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.0.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2. 配置Nacos服务器地址
在项目的resource目录中新建文件bootstrap.yml,添加Nacos服务器的地址相关配置:

spring:
  application:
    name: test
  cloud:
    nacos:
      discovery:
        enabled: true
        #改成自己的nacos地址
        server-addr: 127.0.0.1:8848
        register-enabled: true
        #用户名和密码
        username: nacos
        password: nacos
        #命名空间
        namespace: public
        group: DEFAULT_GROUP
        ephemeral: true
        weight: 100
      config:
        server-addr: ${spring.cloud.nacos.discovery.server-addr}
        username: ${spring.cloud.nacos.discovery.username}
        password: ${spring.cloud.nacos.discovery.password}
        file-extension: yaml
        group: DEFAULT_GROUP
        context-path: /nacos
server:
  port: 8080


这里的地址是Nacos服务器的IP地址和端口号。

3. 创建配置文件
在Nacos控制台上创建配置文件,可以使用Nacos提供的Web界面或者API进行创建

打开Nacos提供的Web界面:

http://127.0.0.1:8848/nacos/

创建配置

4. 在项目中使用配置
demo中添加

package com.example.demo;

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;

@RestController
// 当前类下的配置支持动态更新
@RefreshScope
@RequestMapping("/api/config")
public class TestController {
    @Value("${config.name:null}")
    String name;

    @GetMapping("/name")
    public String cs() {
        return name;
    }
}
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;

import java.util.concurrent.TimeUnit;

@SpringBootApplication
// 服务注册发现
@EnableDiscoveryClient
 //开启 OpenFeign 功能
@EnableFeignClients
public class AdminApplication {
    public static void main(String[] args) throws InterruptedException {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(AdminApplication.class, args);
        while (true) {
            String name = applicationContext.getEnvironment().getProperty("config.name");
            String post = applicationContext.getEnvironment().getProperty("server.port");
            System.out.println("name :"+name);
            System.out.println("post :"+post);
            // 每一秒加载一次,查询注册中心配置是否变更
            TimeUnit.SECONDS.sleep(2);
        }
    }
}

5. 启动项目
启动项目后,Nacos客户端将会从Nacos服务器获取配置并将其注入到对应的属性中。

通过以上步骤,您就可以在项目中使用Nacos配置中心了。可以根据需要动态修改配置,Nacos客户端会自动获取最新的配置并更新到项目中。

        

        

        

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 06:36:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 06:36:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 06:36:01       82 阅读
  4. Python语言-面向对象

    2024-03-27 06:36:01       91 阅读

热门阅读

  1. 机器学习 - 神经网络中的训练模型

    2024-03-27 06:36:01       42 阅读
  2. 模拟实现字符串函数1(详细版本)

    2024-03-27 06:36:01       31 阅读
  3. VUE3——reactive对比ref

    2024-03-27 06:36:01       41 阅读
  4. 通过 Docker 实现国产数据库 OpenGauss 开发环境搭建

    2024-03-27 06:36:01       39 阅读