欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nacos的简单使用-第二天

程序员文章站 2022-06-03 09:16:20
...

配置集(Data ID)

在系统中,一个配置文件通常就是一个配置集,一个配置集可以包含了系统的各种配置信息,例如:一个配置集可能包含了数据源、线程池、日志级别等配置项。每个配置集都可以包含一个有意义的名称,就是配置集的ID即Data ID
Nacos的简单使用-第二天
Nacos的简单使用-第二天配置集中包含的一个个配置内容就是配置项,他代表一个具体的可配置的参数于其值域,通常key=value的形式存在。例如我们常配置系统的日志输出级别(logLevel=INFO|WARN|ERROR)就是一个配置项
配置分组(Group)
配置分组是对配置集进行分组,通过一个有意义的字符串(如Buy或Trade)来表示,不同的配置分组下可以有相同的配置集(Data ID)。当你在nacos上创建一个配置是,如果未填写配置分组的名称。则配置分组的名称采用DEFAULT_GROUP。配置分组常见场景:可用于区分不同项目或应用,例如:学生管理系统的配置集可以定义一个group为:STUDENT_GROUP

命名空间

命名空间(namespace)可用于进行不同环境的配置隔离,例如可以隔离开开发环境,测试环境和生产环境、因为他们的配置可能各不相同、或者是隔离不同的用户,不同的开发人员使用同一个nacos管理各自的配置,可通过namespace隔离,不同的命名空间下,可以存在相同名称的配置分组(Group)或配置集
Namespace:代表不同的环境,如开发】测试、生产环境
Group:代表某项目、如某某医疗项目、某某电商项目
DataId:每个项目下往往都有若干个工程,每个配置集(DataID)是一个工程的主配置文件
Nacos的简单使用-第二天

实战配置中心

Springboot 与nacos整合
父工程的pom.xml

<dependencies>
        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-api</artifactId>
            <version>1.2.1</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.3.3.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

子工程的pom.xml文件

<dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-config</artifactId>
            <version>2.1.0.RELEASE</version>
            <type>jar.sha1</type>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>
    </dependencies>

Nacos的简单使用-第二天

在子工程的resource文件下创建一个yml文件:boostrap.yml

server:
  port: 5550
spring:
  application:
    name: server
  cloud:
    nacos:
      config:s
        server-addr: 127.0.0.1:8848 #配置中心的地址
        file-extension: yaml #dataid的名称就是application的name加file-extension,一般都是三段式的  
		       #server-dev.yml  三段式,而dev的配置是在application文件中已经配置了,spring.profiles.active: dev 
        namespace: 296e6d0d-6052-4046-9fa4-f73b0751f897 #开发环境
        group: DEFAULT_GROUP #测试组

创建application.yml文件

spring:
  profiles:
    active: dev #表示**开发环境

在配置文件加载的过程中boostrap.yml比application.yml先加载的

获取配置中心的配置java代码

package com.ljz.nacos.service1;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author linjiazeng
 * @version 1.0
 * @date 2020/11/26 22:03
 **/
@SpringBootApplication
@RestController
public class ServiceBootstrap {
    public static void main(String[] args) {
        SpringApplication.run(ServiceBootstrap.class,args);
    }
    @Value("${common.name}")
    private String config;

    @GetMapping("config")
    public String getConfig(){
        return config;
    }

使用localhost:5550/config访问,既可以获取到配置中心的配置