Nacos的简单使用-第二天
Nacos配置管理模型
配置集(Data ID)
在系统中,一个配置文件通常就是一个配置集,一个配置集可以包含了系统的各种配置信息,例如:一个配置集可能包含了数据源、线程池、日志级别等配置项。每个配置集都可以包含一个有意义的名称,就是配置集的ID即Data ID
配置集中包含的一个个配置内容就是配置项,他代表一个具体的可配置的参数于其值域,通常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)是一个工程的主配置文件
实战配置中心
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>
在子工程的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访问,既可以获取到配置中心的配置