产品中心

服务创造价值、存在造就未来

当前位置:首页>产品中心

不要告诉别人(阿里源centos)阿里云源代码,玩转配置管理,阿里开源配置中心Nacos和Spring Cloud整合方案详解,配置管理,

上架时间:2025-05-06
浏览次数:9
产品类型:
产品颜色:
产品价格:¥
产品详情

#来点儿干货#

目录

1.前言2.版本信息3.引用相关pom文件4.配置文件添加nacos配置中心信息5.dataId的构成6.通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新7.在nacos配置中心增加配置数据8.启动工程并刷新nacos中更新配置数据,工程中自动获取到最新的配置数据9.附录

1.前言

在实际项目中经常要用到配置中心,常见的配置管理中心有Disconf、Apollo、Consul、Zookeeper、Spring Cloud Config 和Nacos,为了在项目中与这些配置管理中心交互,我们经常需要整合各类相关依赖包,解决各种版本冲突。 本文就如何快速整合spring cloud工程和nacos配置管理中心给出了详细的步骤,能够帮助小伙伴们快速整合spring cloud工程和nacos 配置管理中心

2.版本信息

<properties> <java.version>17</java.version> <spring-boot.version>2.6.13</spring-boot.version> <spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version> <spring-cloud.version>2021.0.5</spring-cloud.version> </properties>

3.引用相关pom文件

Spring Cloud <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> SpringBoot <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> alibaba-nacos-config <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>

4. 配置文件添加nacos配置中心信息

注意一定要配置在bootstrap.properties中,否则nacos配置不会被正确加载

4.1 修改bootstrap.properties

spring.application.name=client-demo spring.cloud.nacos.config.namespace=ns spring.cloud.nacos.config.username=nacos spring.cloud.nacos.config.password=nacos spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.file-extension=properties

4.2 配置项说明

spring.cloud.nacos.config.namespace

项目在nacos中的命名空间id,注意这里是命名空间id,不是命名空间名称

spring.application.name

应用名,它是默认构成dataId的一部分

spring.cloud.nacos.config.username=nacos

用户名

spring.cloud.nacos.config.password=nacos

密码

spring.cloud.nacos.config.server-addr=127.0.0.1:8848

nacos 配置中心服务地址

spring.cloud.nacos.config.file-extension=properties

配置内容的数据格式,目前只支持 properties 和 yaml 类型。

5. dataId的构成

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}

prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

所以根据bootstrap.properties配置,此样例中对应的配置文件的dataId为client-demo.properties

6.通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新

@RestController @RequestMapping("/config") @RefreshScope public class ConfigController { @Value("${useLocalCache:false}") private boolean useLocalCache; @RequestMapping("/get") public boolean get(boolean fuse) { if(fuse){ try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } } return useLocalCache; } }

7.在nacos配置中心增加配置数据

根据应用名和file-extension=properties确定配置dataId为client-demo.properties
增加配置数据

8.启动工程并刷新nacos中更新配置数据,工程中自动获取到最新的配置数据

8.1 启动本地工程

8.2 查看获取到的配置数据

8.3 更新配置中心数据

8.4 应用中对应的配置数据被动态刷新

9.附录

完整pom信息如下

```` <properties> <java.version>17</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-boot.version>2.6.13</spring-boot.version> <spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version> <spring-cloud.version>2021.0.5</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> </dependencies> <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>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.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配置中心源码)task-center,「Nacos源码之配置管理 三」TaskManager 任务管理的使用,配置管理,

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部