Bootstrap

SpringCloudAlibaba微服务-隔离配置

配置中心集成

在SpringCloud Alibaba体系中是使用Nacos作为配置中心,这样Nacos既可以作为注册中心也可以作为配置中心,相当于SpringCloud中的Eureka + Config。要接入Nacos的配置中心也很简单,只需要如下几步:

第一步:加依赖

引入配置中心组件spring-cloud-starter-alibaba-nacos-config

<!--服务配置-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

第二步:打开nacos网页点击命名空间

第三步:点击配置管理的配置列表

点击+号进入新建配置 

如在我们的account-service中应该建立一个account-service.yaml文件,然后把原application.yaml的内容复制到里面即可,在nacos配置中可以删除spring.application.name配置。

 第三步:在项目中建一个bootstrap.yaml配置

接着就是把我们原本的application.yaml删除

在resource中新建文件bootstrap.yml,配置应用名称和注册中心地址

spring:
  application:
    name: user

  cloud:
    nacos:
      config:
        server-addr: 101.42.157.178:8848
        file-extension: yaml
        namespace: a27d72ca-62db-488c-926c-019b2b3a6e6d
        group: DEFAULT_GROUP

  profiles:
    active: test

注:namespace千万别配错了,要不然报数据库的错 

注:在客户端和server端对文件格式的声明要一致,例如在客户端声明的是yml,则server端添加配置文应该是${spring.application.name}.yml,若写成${spring.application.name}.yaml,则会找不到配置文件。

运行测试

是不是发现跑不起来

这有个非常大的坑

2020/2021版本无法加载bootstrap.yaml文件

解决方法就是加入依赖

<!--解决2020/2021版本无法加载bootstrap.yaml文件bug-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

简单几步就可以将你的微服务集成Nacos的配置中心了,但是在实际开发中我们需要准备多个环境的配置文件(开发、测试、生产),接下来我们看看如何使用Nacos进行多环境配置管理。

多环境管理

在Nacos中实现多环境管理很容易,可以通过Profiles, Group, Namespace三个维度实现。

profiles

nacos配置中心的DATA ID就相当于一个配置文件的名称,前面一部分我们DATA ID的默认命名方式为${spring.application.name}.${ spring.cloud.nacos.config.file-extension},比如我们之前的配置文件为account-service.yml。

如果我们在服务启动的时候指定了服务的环境名称spring.profiles.active,那么DATA ID的命名方式就变成了${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}。比如上面的account-service我们在bootstrap.yml中设置了spring.profiles.active=DEV,那么服务启动时就会去nacos抓取account-service-DEV.yml这个配置文件的数据。

利用Nacos命名方式的特性我们可以实现多环境配置管理。

实战

  • 给系统指定环境名称(注意)
spring:
  profiles:
    active: dev
  • 在Nacos中建立多套环境的配置

  • 启动应用,观察后端启动日志

;