一,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
Warning: Undefined variable $return_smiles in /www/wwwroot/wql_luoqin_ltd/wp-content/themes/Sakura/functions.php on line 1109