-
SpringCloud Alibaba(四) - Nacos 配置中心
1、环境搭建
1.1 依赖
<!-- nacos注册中心 注解 @EnableDiscoveryClient -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- nacos配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
1.2 bootstrap.properties 配置
# 端口
server.port=9607
# 服务名
spring.application.name=kgcmall96-nacos-config
# nacos 配置中心 的地址
spring.cloud.nacos.server-addr=127.0.0.1:8848
# 指定nacos配置中心支持的配置文件后缀,注意:nacso上增加的配置文件后缀要跟此处一致,默认值properties
spring.cloud.nacos.config.file-extension=yml
1.3 请求
/**
* Created On : 28/11/2022.
* <p>
* Author : huayu
* <p>
* Description: nacos配置中心测试入口
*/
@RestController
public class KgcMallNacosConfigController {
//单个读取远程配置中心的公共配置参数
@Value("${kh96.nacos.config:kh96-default}")
private String kh96NacosConfig;
/**
* @param : []
* @return : java.lang.String
* @author : huayu
* @date : 28/11/2022
* @description : 读取远程nacos配置中心添加的统一自定义配置,返回
*/
@GetMapping("/testNacosConfig")
public String testNacosConfig() {
return kh96NacosConfig;
}
}
1.4 添加远程配置文件
1.4.1 添加
1.4.2 配置信息
1.4.3 添加成功
1.5 测试
1.6 修改配置信息
1.7 再次 测试
1.8 重启项目测试
2、配置信息实时刷新
每次修改配置文件都需要重启项目,十分麻烦,需要设置实时刷新;
2.1 添加注解
@RestController
@RefreshScope //nacos配置动态刷新注解
public class KgcMallNacosConfigController {
......
}
2.2 测试
3、批量读取配置信息
3.1 配置类
/**
* Created On : 28/11/2022.
* <p>
* Author : huayu
* <p>
* Description: KgcMallNacosConfig
*/
@Configuration
@RefreshScope
@ConfigurationProperties(prefix = "kh96.nacos")
@Data
public class KgcMallNacosConfig {
/*
测试 批量读取 配置信息
*/
private String config;
}
3.2 请求
/**
* Created On : 28/11/2022.
* <p>
* Author : huayu
* <p>
* Description: nacos配置中心测试入口
*/
@RestController
public class KgcMallNacosConfigController {
@Autowired
private KgcMallNacosConfig kgcMallNacosConfig;
/**
* @param : []
* @return : java.lang.String
* @author : huayu
* @date : 28/11/2022
* @description : 读取远程nacos配置中心添加的统一自定义配置,返回
*/
@GetMapping("/testNacosConfig")
public String testNacosConfig() {
//测试 批量读取
return kgcMallNacosConfig.getConfig();
}
}
3.3 测试
4、读取配置文件的组成
prefix-active-extension
prefix:前缀,默认为服务名
active:激活环境
extension:文件后缀(propertion或者yml),需要跟配置中心一致
${spring.cloud.nacos.config.prefix}.${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
4.1 active指定配置环境
# 指定nacos配置中心支持的配置文件后缀,注意:nacso上增加的配置文件后缀要跟此处一致,默认值properties
spring.cloud.nacos.config.file-extension=yml
# 指定环境
# 配置文件前缀(默认以 服务名为前缀)
spring.cloud.nacos.config.prefix=config
## 指定激活环境
spring.profiles.active=test
# 最终拼接出来的就是 config-test-yml
4.2 添加配置文件
4.3 测试
5、命名空间 和 分组
5.1 添加命名空间
5.2 指定命名空间个分组
# 指定nacso配置中心的名称空间,配置的是对应名称空间的id值,不是名称
# 官方建议:namespace名称空间,作为环境区分,不同环境,使用不同的名称空间
spring.cloud.nacos.config.namespace=0e35ec99-dfac-45eb-84bb-e9d8a35f726e
# 指定名称空间下的分组,一般都是用于区分相同环境加的不同应用项目组,如果不配合配置,默认使用的是当前名称空间下的默认分组DEFAULT_GROUP,也支持自定义分组
spring.cloud.nacos.config.group=KH96_GROUP
5.2.1 添加配置
6、配置文件级别
6.1 配置文件级别
主配置 > 扩展配置 > 共享配置
相同类型配置下,下标越大优先级越高;
6.2 共享配置
6.2.1 配置信息
# nacos 的共享配置,此配置项是一个数组,数组的下标越大,优先级越高,同等的共享配置,高优先级自动覆盖低优先级
# 提醒:nacos所有的配置中,主配置存在的情况下,具有最高优先级,同等配置不会被共分享配置覆盖(所以先删除主配置)
spring.cloud.nacos.config.shared-configs[0].data-id=kgcmall96-shared-config.yml
spring.cloud.nacos.config.shared-configs[0].group=KH96_GROUP
spring.cloud.nacos.config.shared-configs[0].refresh=true
6.2.2 添加配置文件
6.2.3 测试
需要先删除主配置,因为它优先级最高;
6.2.4 在配置一个共享配置,下标1
# 下标1覆盖下标0的配置
spring.cloud.nacos.config.shared-configs[1].data-id=kgcmall96-priority-config.yml
spring.cloud.nacos.config.shared-configs[1].group=KH96_GROUP
spring.cloud.nacos.config.shared-configs[1].refresh=true
6.2.5 添加配置文件
6.2.6 测试
6.3 扩展配置
6.3.1 配置信息
## nacos扩展配置,此配置项是一个数组,数组的下标越大,优先级越高,同等的共享配置,高优先级自动覆盖低优先级
## 扩展配置的优先级低于主配置,高于共享配置,如果某种场景下需要单独覆盖共享配置,就可以使用扩展配置,比如某个oracle,其他都意思mysql
spring.cloud.nacos.config.extension-configs[0].data-id=kgcmall96-extend-config.yml
spring.cloud.nacos.config.extension-configs[0].group=KH96_GROUP
spring.cloud.nacos.config.extension-configs[0].refresh=true
6.3.2 添加配置文件
6.3.3 测试
出处:https://www.cnblogs.com/xiaoqigui/p/16934375.html
最新更新
Objective-C语法之代码块(block)的使用
VB.NET eBook
Add-in and Automation Development In VB.NET 2003 (F
Add-in and Automation Development In VB.NET 2003 (8
Add-in and Automation Development in VB.NET 2003 (6
Add-in and Automation Development In VB.NET 2003 (5
AddIn Automation Development In VB.NET 2003 (4)
AddIn And Automation Development In VB.NET 2003 (2)
Addin and Automation Development In VB.NET 2003 (3)
AddIn And Automation Development In VB.NET 2003 (1)
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
武装你的WEBAPI-OData入门
武装你的WEBAPI-OData便捷查询
武装你的WEBAPI-OData分页查询
武装你的WEBAPI-OData资源更新Delta
5. 武装你的WEBAPI-OData使用Endpoint 05-09
武装你的WEBAPI-OData之API版本管理
武装你的WEBAPI-OData常见问题
武装你的WEBAPI-OData聚合查询
OData WebAPI实践-OData与EDM
OData WebAPI实践-Non-EDM模式