【Spring Cloud Alibaba】Nacos 配置中心

发布时间 2023-07-04 18:13:32作者: lihewei

1. Nacos 配置中心快速入门

版本控制:

  • Spring Cloud 版本为Hoxton.SR9
  • Spring Cloud Alibaba 版 本 为 2.2.6.RELEASE
  • Spring Boot 版 本 为2.3.2.RELEASE

1.1 导入依赖

<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

1.2 在 Nacos 中新建一个 powernode 的命名空间

生成了一个 id,记住这个 id:682694f9-214b-4afb-9f10-64b2e602d7c4

1.3 NacosServer 里面添加一个配置文件

1.4 项目中添加一个配置文件 bootstrap.yml

server:
  port: 8188

spring:
  application:
    # 应用名称
    name: config-client-a
  profiles:
    # 环境配置
    active: dev
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: localhost:8848
        namespace: 682694f9-214b-4afb-9f10-64b2e602d7c4
      config:
        # 配置中心地址
        server-addr: localhost:8848
        namespace: 682694f9-214b-4afb-9f10-64b2e602d7c4
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

2. Nacos 获取多配置文件

修改项目的配置文件

server:
	port: 8080
spring:
	application:
		name: config-client-a
	cloud:
		nacos:
			config:
				server-addr: localhost:8848
				namespace: 5510ef39-ca9a-4f5d-87ba-7fb2afbf7035 # 命名空间 注意使用 id
				extension-configs: # 配置多个配置文件 数组形式
					- data-id: config-a.yml # 配置 id,必须要加文件后缀
						group: GROUP_A # 组别
						refresh: true # 是否支持刷新,是
					- data-id: config-b.yml
						group: GROUP_B
						refresh: false # 是否支持刷新,否

说明:

  • spring.cloud.nacos.config.extension-configs[n].dataId , 指 定 多 个 配 置 的dataId,必须包含文件格式,支持 properties、yaml 或 yml;
  • spring.cloud.nacos.config.extension-configs[n].group,指定分组;
  • spring.cloud.nacos.config.extension-configs[n].refresh,是否支持刷新。

上面的配置中,我们分别从 DEFAULT_GROUP 中获取了 config-a.yml 和 config-b.yml 配置内容,并且 config-a.yml 支持刷新,config-b.yml 不支持刷新。

3. Nacos Config 常用的配置

3.1 Config 常用配置

配置项 Key 默认值 说明
服务端地址 spring.cloud.nacos.config.server-addr
DataId 前缀 spring.cloud.nacos.config.prefix spring.application.name
Group spring.cloud.nacos.config.group DEFAULT_GROUP
dataID 后缀及内容文件格式 spring.cloud.nacos.config.file-extension properties dataId 的后缀,同时也是配置内容的文件格式,properties/yaml
配置内容的编码方式 spring.cloud.nacos.config.encode UTF-8 配置的编码
获取配置的超时时间 spring.cloud.nacos.config.timeout 3000 单位ms
配置的命名空间 spring.cloud.nacos.config.namespace 常用场景之一是不同环境的配置的区分隔离,例如开发测
是否开启监听和自动刷新 spring.cloud.nacos.config.refresh.en abled true

3.2 bootstrap.yml 模板

server:
  port: 8188

spring:
  application:
    # 应用名称
    name: config-client-a
  profiles:
    # 环境配置
    active: dev
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: localhost:8848
        namespace: 682694f9-214b-4afb-9f10-64b2e602d7c4
      config:
        # 配置中心地址
        server-addr: localhost:8848
        namespace: 682694f9-214b-4afb-9f10-64b2e602d7c4
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}