Spring Cloud Alibaba、Spring Boot,Spring Cloud 版本说明
具体版本应和项目中cloudalibaba以及cloud保持一致
springboot版本为
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
</parent>
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2021.1</version>
</dependency>
<!--bootstrap启动器-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.1</version>
</dependency>
命名空间主要用于区分不同项目或者隔离开发环境
Data ID:
Data ID是配置项的唯一标识,它的命名是有一定规范的。我们在配置信息时,一定是先有了微服务客户端,根据客户端需求,才在配置中心配置的信息。
Data ID的命名规范是:
spring.application.name-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
spring.application.name
:服务名称。
${spring.profiles.active}
:是配置文件中配置的环境信息
${spring.cloud.nacos.config.file-extension}
是微服务客户端配置文件中配置的file-extension信息。
? 作用是指定配置中心中配置信息的格式,一般选择yml格式的。
假设微服务客户端服务名叫iam-biz,开发环境为dev。file-extension扩展格式为yml,则Data ID命名为:iam-biz-dev.yml
Group
组的概念。同一个项目环境中更细粒度的区分配置项
配置格式
配置格式的勾选要与file-extension扩展模式的配置相对应。一般选择yml格式。
然后在配置栏中写配置信息即可
将基础配置和nacos连接信息添加到bootstrap.yml中;
spring:
profiles:
active: dev # 环境 dev:开发环境|test:测试环境|prod:生产环境
include: properties
application:
name: iam-biz #服务名称
main:
allow-bean-definition-overriding: true
cloud:
nacos:
discovery:
server-addr: 192.168.2.217:8848 #注册中心地址
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr} #配置中心地址
file-extension: yml #后缀名
group: dev #分组
namespace: iam-lichunbo #命名空间ID
注意的是一定是放下bootstrap.yml中而不是application.yml。如果配置信息放在application.yml中微服务客户端连接nacos配置中心,是发生在application.yml文件读取之前去拉取的,此时并不知道application.yml中配置的是什么信息,所以只能按默认配置去连接,因此就连接localhost地址去了。
有开发环境、测试环境、生产环境。那么切换不同的环境配置该如何操作呢?
spring.profiles.active=dev那么就会使用nacos中iam-biz-dev.yml的配置
spring.profiles.active=test那么就会使用nacos中iam-biz-test.yml的配置
active=dev那么就会使用nacos中iam-biz-dev.yml的配置
spring.profiles.active=test那么就会使用nacos中iam-biz-test.yml的配置
注意的是案例中Group用的都是dev,实际这个叫什么并不重要;我们只需要注意在bootstrap中配置的组名要和nacos一致