# Nacos配置中心

官网文档: https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html (opens new window)

# 一、统一配置中心

# 使用方式

  1. 引入依赖

    最好使用Cloud的依赖,可以配置服务名称和多个文件

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    
    1
    2
    3
    4
  2. 添加配置 bootstrap.properties

    配置文件在dataId:${prefix}-${spring.profiles.active}.${file-extension}

    比如下面需要配置 [dataId=myapi-dev.yml]

    spring.application.name=myapi												# 服务名
    
    spring.cloud.nacos.config.server-addr=192.168.1.201:8848					# 配置中心地址
    spring.cloud.nacos.config.namespace=1d76bb9a-c98b-4e22-95d3-2008e17380d5	# 命名空间ID 一般用来隔离环境
    spring.cloud.nacos.config.group=DEFAULT_GROUP								# 分组
    spring.cloud.nacos.config.prefix=${spring.application.name}					# 配置文件前缀 
    spring.cloud.nacos.config.file-extension=yml								# 配置文件后缀
    spring.profiles.active=dev													# 环境设置
    
    1
    2
    3
    4
    5
    6
    7
    8
  3. 使用

    @RestController
    @RefreshScope  // 开启配置自动更新
    public class DemoController {
        
        @Value("${server.port:}") //获取配置 server.port
        private String port;
    
        @GetMapping("/tool")
        public String get() {
            System.out.println("aaaaaaaaaaaaaaaa port+ " + port);
            return port;
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    多个配置

    加载配置,默认情况下,会加载 Data ID=${spring.application.name}.properties,Group=DEFAULT_GROUP 下的配置

    现在有多个配置,分别为日志配置文件 logback-spring.properties 和 myapi.properties

    1. 去Nacos里配置

    2. 配置

      # logback-spring.properties
      spring.cloud.nacos.config.ext-config[0].dataId=logback-spring.properties
      spring.cloud.nacos.config.ext-config[0].group=DEFAULT_GROUP
      spring.cloud.nacos.config.ext-config[0].refresh=true
      
      # myapi.properties
      spring.cloud.nacos.config.ext-config[1].dataId=myapi.properties
      spring.cloud.nacos.config.ext-config[1].group=DEFAULT_GROUP
      spring.cloud.nacos.config.ext-config[1].refresh=true
      
      1
      2
      3
      4
      5
      6
      7
      8
      9

# 二、服务注册中心

  1. 引入依赖

    <dependency>
    	<groupId>com.alibaba.cloud</groupId>
    	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
    1
    2
    3
    4
  2. 配置文件 bootstrap.properties 配置注册中心地址

    spring.application.name=myapi
    spring.cloud.nacos.discovery.server-addr=192.168.1.201:8848
    
    1
    2
  3. 启动类新增注解,开启服务注册 @EnableDiscoveryClient