Nacos-config配置中心介绍
官方文档
Nacos提供用于存储配置和其他元数据的key/value存储,为分布式系统中的外部化配置提供服务器端和客户端的支持,使用Spring Cloud Alibaba Nacos Config,您可以在Nacos Server中集中管理你在Spring Cloud应用的外部属性配置。
使用配置中心的优势
易于维护,时效性好,安全性好
Nacos-config配置管理界面
Nacos-config权限管理
启动权限控制需要修改application.properties
中nacos.core.auth.enabled=true
Nacos-config Client读取配置
添加对应的依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
添加bootstrap.peroerties配置文件来配置Nacos server的地址
spring:
application:
name: order-service #这里的名称要与application.yml和nacos config配置中心保持一致
#配置服务地址,如果开启了权限的验证,这里需要带上用户名、密码和空间
cloud:
nacos:
config:
server-addr: 111.229.181.158:8847
username: nacos
password: nacos
namespace: public
当控制台一直输出大量的日志,可以注释掉namespace
Nacos-config 其他扩展配置
更加具体详细的配置可以查看官网文档
- Nacos客户端默认是读取的properties扩展名的文件
- 如果改成了
yml
的文件,需要在对应的文件中添加spring.cloud.nacos.config.file-extension=yaml
- 支持配置的动态更新如果需要关闭可以增加配置:
spring.cloud.nacos.config.refresh.enabled=false
- 可支持profile粒度的配置:
spring.profiles.active=develop
配置文件最佳的实现方式:
- namespace:代表不同的环境,如开发、测试、生产
- group:代表某项目,如XX医疗、XXX电商项目
- dataid:每个项目下往往有若干个工程(微服务),每个配置集(dataid)是一个工程的主配置文件
Nacos-config-@RefreshScope
@Value注解可以获取到配置中心的值,但是无法动态感知修改后的值,需要利用@RefreshScope
注解
@RestController
@RefreshScope
public class TestController{
@Value("${common.age}")
private String age;
}