Nacos-config配置中心介绍

官方文档
Nacos提供用于存储配置和其他元数据的key/value存储,为分布式系统中的外部化配置提供服务器端和客户端的支持,使用Spring Cloud Alibaba Nacos Config,您可以在Nacos Server中集中管理你在Spring Cloud应用的外部属性配置。
使用配置中心的优势
易于维护,时效性好,安全性好
Nacos-config - 图1

Nacos-config配置管理界面

Nacos-config - 图2

Nacos-config权限管理

启动权限控制需要修改application.propertiesnacos.core.auth.enabled=true

Nacos-config Client读取配置

添加对应的依赖

  1. <dependency>
  2. <groupId>com.alibaba.cloud</groupId>
  3. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  4. </dependency>

添加bootstrap.peroerties配置文件来配置Nacos server的地址

  1. spring:
  2. application:
  3. name: order-service #这里的名称要与application.yml和nacos config配置中心保持一致
  4. #配置服务地址,如果开启了权限的验证,这里需要带上用户名、密码和空间
  5. cloud:
  6. nacos:
  7. config:
  8. server-addr: 111.229.181.158:8847
  9. username: nacos
  10. password: nacos
  11. namespace: public

当控制台一直输出大量的日志,可以注释掉namespace

Nacos-config 其他扩展配置

更加具体详细的配置可以查看官网文档

  1. Nacos客户端默认是读取的properties扩展名的文件
  2. 如果改成了yml的文件,需要在对应的文件中添加spring.cloud.nacos.config.file-extension=yaml
  3. 支持配置的动态更新如果需要关闭可以增加配置:spring.cloud.nacos.config.refresh.enabled=false
  4. 可支持profile粒度的配置:spring.profiles.active=develop

配置文件最佳的实现方式:

  • namespace:代表不同的环境,如开发、测试、生产
  • group:代表某项目,如XX医疗、XXX电商项目
  • dataid:每个项目下往往有若干个工程(微服务),每个配置集(dataid)是一个工程的主配置文件

Nacos-config-@RefreshScope

@Value注解可以获取到配置中心的值,但是无法动态感知修改后的值,需要利用@RefreshScope注解

  1. @RestController
  2. @RefreshScope
  3. public class TestController{
  4. @Value("${common.age}")
  5. private String age;
  6. }