SpringCloud Alibaba微服务实战五- 配置隔离
本篇作为SpringCloud Alibaba微服务实战系列的第五篇,主要内容是将所有的微服务接入Nacos配置中心并按环境进行隔离
配置中心集成
在SpringCloud Alibaba体系中是使用Nacos作为配置中心,这样Nacos既可以作为注册中心也可以作为配置中心,相当于SpringCloud中的Eureka + Config。要接入Nacos的配置中心也很简单,只需要如下几步:
<!--nacos的服务配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--2020/2021的springcloud 才需要引入这个,不然无法读取Bootstrap.yaml文件-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
这里指定文件后缀为yaml
注:在客户端和server端对文件格式的声明要一致,例如在客户端声明的是yml,则server端添加配置文应该是${spring.application.name}.yml,若写成spring.application.name.yaml,则会找不到配置文件。
如在我们的account-service中应该建立一个account-service.yaml文件,然后把原application.yaml的内容复制到里面即可,在nacos配置中可以删除spring.application.name配置。
```java
spring:
application:
name: account_service
cloud:
nacos:
# username: nacos
# password: nacos
config:
server-addr: 119.23.176.114:8848
file-extension: yaml
namespace: 0f6a19be-9a28-4886-9fe4-f6f5a3ded824
group: DEFAULT_GROUP #切换环境 改组就行了
#dev test prod。。。等环境
```
测试服务功能是否正常
是不是发现跑不起来?
超级大坑
SpringCloudAlibaba 2020/2021 无法加载bootstrap.yml文件问题
加入该依赖即可:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
简单几步就可以将你的微服务集成Nacos的配置中心了,但是在实际开发中我们需要准备多个环境的配置文件(开发、测试、生产),接下来我们看看如何使用Nacos进行多环境配置管理。
多环境管理
在Nacos中实现多环境管理很容易,可以通过命名不同组实现。
利用Nacos命名组方式的特性我们可以实现多环境配置管理。
实战
spring: profiles: active: DEV
启动应用,观察后端启动日志
在Nacos中建立多套环境的配置