0
点赞
收藏
分享

微信扫一扫

Nacos 之服务配置中心

一、Nacos 作为配置中心-基础配置

1.建立Model

建立一个名为”cloudalibaba-config-nacos-client3377“的Model。

Nacos 之服务配置中心_maven

 

 

2.改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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>springcloud-nacos</artifactId>
<groupId>com.ckfuture.springcloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>cloudalibaba-config-nacos-client3377</artifactId>

<dependencies>
<!--nacos-config-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--nacos-discovery-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--web+actuator-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>

</project>

 

3.建YML

分别建立”application.yml“和”bootstrap.yml“两个配置

application.yml

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

 

bootstrap.yml

# Nacos全局配置
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #nacos 服务注册中心地址
config:
server-addr: localhost:8848 #nacos 作为配置中心地址
file-extension: yaml #指定yaml格式的配置

 

4.主启动类

package com.ckguture.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfigClientMain3377 {
public static void main(String[] args) {
SpringApplication.run(NacosConfigClientMain3377.class,args);
}
}

5.业务类

package com.ckguture.springcloud.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.RestController;

@RestController
@RefreshScope //支持Nacos的动态刷新功能
public class ConfigClientController {
@Value("${config.info}")
private String configInfo;

@GetMapping("/config/info")
public String getConfigInfo(){
return configInfo;
}
}

6.在Nacos中添加配置信息

Nacos配置管理dataId的完整格式:

${prefix}-${spring.profile.active}.${file-extension}

prefix 默认为spring.application.name 的值,也可通过配置项 spring.cloud.nacos.config.prefix来配置。

spring.profile.active 即为当前环境对应的profile

file-extension 为配置内容的数据格式,目前支持 properties和yml类型。

最终公式:

${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}

根据公司得到配置dataId为:nacos-config-client-dev.yaml (注意 yaml不是yml)

在Nacos的配置列表中新增配置

Nacos 之服务配置中心_spring_02

 配置内容为:

config:
info: nacos config center,version = 1

Nacos 之服务配置中心_spring_03

 

 

Nacos 之服务配置中心_spring_04

 

7.测试

启动主启动类

Nacos 之服务配置中心_maven_05

 

 浏览器访问:http://localhost:3377/config/info

Nacos 之服务配置中心_spring_06

8.自带动态刷新

修改Nacos配置内容,接口访问跟着刷新。

Nacos 之服务配置中心_maven_07

 

 

Nacos 之服务配置中心_spring_08

 

 再次访问:

Nacos 之服务配置中心_maven_09

 二 Nacos作为配置中心-分类配置

NameSpace+Group+DataID

指定spring.profile.active和配置文件的DataID来使不同环境下读取不同的配置

建立"nacos-config-client-test.yaml"

Nacos 之服务配置中心_spring_10

 配置内容:

config: 
info: nacos config center,nacos-config-client-test.yaml version = 2

Nacos 之服务配置中心_spring_11

 

 修改3377配置

Nacos 之服务配置中心_spring_12

 

 

启动并测试

 

Nacos 之服务配置中心_maven_13

 

 现在两个配置(dev和test都默认在public中)。

 

 相同的DataID在不同的GROUP中,程序中怎样区别;

Nacos 之服务配置中心_spring_14

 

在bootstrap.yml中增加默认group组名。

 

Nacos 之服务配置中心_spring_15

# Nacos全局配置
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #nacos 服务注册中心地址
config:
server-addr: localhost:8848 #nacos 作为配置中心地址
file-extension: yaml #指定yaml格式的配置
group: TEST_GROUP
#${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
#nacos-config-client-dev.yaml

 

新建两个命名空间“dev”和“test”

Nacos 之服务配置中心_xml_16

 

 将命名空间ID写入代码的配置文件中(以“dev”命名空间为例)

Nacos 之服务配置中心_spring_17

 

 

# Nacos全局配置
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #nacos 服务注册中心地址
config:
server-addr: localhost:8848 #nacos 作为配置中心地址
file-extension: yaml #指定yaml格式的配置
namespace: 48ac12df-3c55-4e1b-bed2-30d87e6da6c7
group: DEV_GROUP
#${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
#nacos-config-client-dev.yaml

在配置列表中的“dev”中建立配置

Nacos 之服务配置中心_xml_18

 

 

Nacos 之服务配置中心_maven_19

 

 启动运行并测试

Nacos 之服务配置中心_maven_20

 



举报

相关推荐

0 条评论