nacos--springcloud集成
这里使用nacos客户端的版本为2.0.3
引依赖
需注意版本直接的相关依赖,这里我选择 springboot :2.2.4.RELEASE springcloud :Hoxton.SR4 springcloudalibaba :2.2.0.RELEASE
父项目引入alibabacloud的相关依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
</parent>
<properties>
<spring-cloud.version>Hoxton.SR4</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.0.RELEASE</spring-cloud-alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
项目nacos依赖
<dependencies>
<!-- Spring Cloud nacos start-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
<!-- Spring Cloud nacos end-->
</dependencies>
在启动类上添加注解@EnableDiscoveryClient
在需要自动刷新的配置文件的类上增加@RefreshScope来达到动态的刷新配置值
在bootstrap.yml中增加nacos的配置
nacos:
addr: xxxxx
namespace: xxxxx
spring:
cloud:
nacos:
discovery: ##注册中心
server-addr: ${nacos.addr}
namespace: ${nacos.namespace}
enabled: true #是否注册到nacos上,默认为true
config: ##配置中心
namespace: ${nacos.namespace}
server-addr: ${nacos.addr} #配置中心地址
file-extension: yaml #配置文件的类型,目前只支持 properties 和 yaml 类型
## 下面配置基本属于缺省值 可以根据自己实际项目来决定
max-retry: 5
enabled: true #是否使用远程配置,默认为true
group: DEFAULT_GROUP #分组,默认为DEFAULT_GROUP
prefix: ${spring.application.name} #默认值为:spring.application.name
data_id: ${prefix}-${spring.profiles.active}.${file-extension} #默认值为:${prefix}-${spring.profiles.active}.${file-extension},当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
ext-config[0]: #扩展配置 序号需要从0开始
data-id: base-xxx.yaml
group: COMMON_GROUP
refresh: true
ext-config[1]:
data-id: xxx.yaml
group: COMMON_GROUP
refresh: true
多环境配置
DataID区分
Group区分
Namespace区分
DataID与Group但是每个项目创建多个配置文件,随着项目的增多,都在一个命名空间下回显得很混乱,查找起来也不是很方便,而且不利于做权限控制
注意:本文归作者所有,未经作者允许,不得转载