Nocos多环境分类配置

2022-06-05 SpringCloudSpringCloudAlibaba

在实际的企业环境中,我们很多软件环境是需要区分使用场景的。例如MySQL有开发集群、测试集群和上线集群等等。难道我们需要部署多个Naocs来适应我们不同环境的配置吗?

答案是不需要。Naocs能够通过命名空间和分组id来进行不同的配置,我们不需要改变yml中nacos的地址,只需要适配环境变量和分组信息即可。

Namespace命名空间

Namespace主要用来实现隔离,比方说我们现在有三个环境:开发测试、环境,我们就可以创建三个Namespace, 不同的Namespace之间是隔离的,默认是public。

Group分组

Group可以把不同的微服务划分到同一个分组里面去

# 默认空间+默认分组+多DataId实现不同环境的配置读取

先来看一下如何在控制台配置,DataId最后一个"-"后面代表的就是不同环境。 Nacos的DataId配置

bootstrap.yml此时的配置如下,我们通过切换spring.profiles.active来配置不同环境,DataId构成结构:${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension},也就是命名空间-环境.文件拓展格式

spring:
  application:
    name: flight-sys-service
  cloud:
    nacos:
      config:
        server-addr: ip:8848 #Nacos配置中心地址
        file-extension: yaml #文件拓展格式
  profiles:
    # active: dev #开发环境
    active: test #测试环境

# 通过Group实现环境区分

Nacos控制台新建配置时指定Group Nacos控制台新建配置时指定Group

Nacos控制台新建两个DataId一样,但是Group不一样的配置文件。 Nacos控制台新建两个DataId一样,但是Group不一样的配置文件

# 配置文件指定Group

spring:
  application:
    name: flight-sys-service
  cloud:
    nacos:
      config:
        server-addr: ip:8848
        file-extension: yaml
        group: TEST_GROUP #指定group
  profiles:
    active: test

# Namespace命名空间

如何新建Namespace?直接在Nacos控制台可视化界面,点击新建即可。 新建Namespace

如何在新建的Namespace中添加配置文件? 新建的Namespace中添加配置文件

# 配置文件指定Namespace为dev

spring:
  application:
    name: flight-sys-service
  cloud:
    nacos:
      config:
        server-addr: ip:8848
        file-extension: yaml
        namespace: 27718f8f-8b75-4d0d-b78d-e69800b17d37 # 这里不填dev,填命名空间的id
  profiles:
    active: dev
上次更新: 1 年前