一,Nacos服务配置中心概述
Nacos作为配置中心和Config实现的功能是一样的,但它的功能更加强大
强大功能:
- 动态刷新:不需要Config+Bus那样还要发送请求去刷新,它在服务端修改之后可以直接刷新
- 多环境配置:在Config其实也有,但Nacos配置文件和程序模块是强依赖的,不需要像config配置laben分支,name等,它会自动寻找匹配
一,Nacos配置的组成部分
配置由于三部分组成:三大部分实现多环境匹配配置
- NameSpace:命名空间,主要由于区别部署环境的
- Group:分组,在命名空间下在进行区分
- Data ID:配置文件名称(唯一),这个名称有固定的书写格式

默认情况下:Namespace=public,Group=DEFAULT_GROUP
三大部分的主要应用:
- Namespace:命名空间隔离,比如选择有三个环境:开发(dev),测试(test),生产(pert)可以创建三个NameSpace进行区分隔离
- Group:主要用于把同一个NameSpace中的不同微服务划分到同一个分组里面
- Data ID:指的是具体服务的配置文件
注:通过NameSpace,Group,DataID的主要功能是配置区别和精准匹配
二,Nacos服务端配置的简单使用
配置控制台选项:
配置详情:
三,客户端配置和服务端DataID的对应关系
DataID命名格式:
${prefix}-${spring.profiles.active}.${file-extension}
- prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
- spring.profiles.active 即为当前环境对应的 profile 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
- file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置,目前只支持 properties 和 yaml 类型。

在Nacos客户端拉取配置时和Config不一样,后者可以指定路径如Lable,Name等,而Nacos在配置中不能直接指定,通过修改应用名称,dev和Nacos服务端的Dataid匹配然后拉取更新
二,Nacos配置中心的使用
在Nacos配置中心服务端新建一个Yaml文件:

注:如果新建是yaml文件,那么Data ID必须为yaml后缀,不能是yml不然会解析错误
① Maven依赖
<!--实现服务的注册与发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--实现服务配置-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
② Bootstrap配置文件
server:
port: 9104
spring:
application:
name: cloud-nacos-config
cloud:
nacos:
discovery: #服务注册
server-addr: 192.168.68.134:8848 #nacos服务端地址
config: #服务配置
server-addr: 192.168.68.134:8848 #配置中心地址
file-extension: yaml #配置文件格式(yaml或者properties)
management:
endpoints:
web:
exposure:
include: "*"
③ application配置文件
spring:
profiles: #表示环境如dev开发环境,test测试环境,prod产品环境
active: dev
④ main启动类
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigMain {
public static void main(String[] args) {
SpringApplication.run(NacosConfigMain.class,args);
}
}
⑤ controller
@RestController
@RefreshScope //配置文件动态刷新注解
public class ConfigClientController {
@Value("${config.info}")
String info;
@GetMapping("/config/info")
public String getconfiginfo() {
return info;
}
}
测试:






Comments | NOTHING