Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, SpringCloud Config。通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。
在系统开发过程中,开发者通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成。配置变更是调整系统运行时的行为的有效手段。
如果微服务架构中没有使用统一配置中心时,所存在的问题:
配置文件分散在各个项目里,不方便维护配置内容安全与权限更新配置后,项目需要重启
nacos配置中心:系统配置的集中管理(编辑、存储、分发)、动态更新不重启、回滚配置(变更管理、历史版本管理、变更审计)等所有与配置相关的活动。
springcloud其他内容:https://blog.csdn.net/sjgllllll/article/details/115263615
https://blog.csdn.net/sjgllllll/article/details/123483970
使用nacos进行服务信息配置
Data ID 的完整规则格式如下
${prefix}-${spring.profile.active}.${file-extension}
- prefix 默认为所属工程配置spring.application.name 的值(即:nacos-provider),也可以通过配
置项 spring.cloud.nacos.config.prefix来配置。
- spring.profiles.active=dev 即为当前环境对应的 profile。 注意:当
spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成
${prefix}.${file-extension}
- file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.fileextension 来配置。目前只支持 properties 和 yaml 类型
在模块中引入依赖
创建bootstrap.properties配置文件org.springframework.cloud spring-cloud-starter-alibaba-nacos-config
#配置中心地址 spring.cloud.nacos.config.server-addr=127.0.0.1:8848 #spring.profiles.active=dev # 该配置影响统一配置中心中的dataId spring.application.name=service-statistics
bootstrap.yml(bootstrap.properties)先加载
application.yml(application.properties)后加载
bootstrap.yml 和application.yml 都可以用来配置参数。
bootstrap.yml 可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。
application.yml 可以用来定义应用级别的。
启动项目:启动的端口号为配置中心设置的端口号
默认只有public,新建了dev、test和prod命名空间
然后clone 之前创建的配置文件
修改dev的配置:
修改bootstrap.properties添加如下配置
spring.cloud.nacos.config.server-addr=127.0.0.1:8848 #spring.profiles.active=dev # 该配置影响统一配置中心中的dataId,之前已经配置过 spring.application.name=service-statistics spring.cloud.nacos.config.namespace=4b34206a-468b-423c-9fc4-31abf2d5aa05
namespace的值:
启动项目测试:
在一些情况下需要加载多个配置文件。假如现在dev名称空间下有三个配置文件:service-statistics.properties、redis.properties、jdbc.properties
修改bootstrap.properties的配置:
spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.profiles.active=dev # 该配置影响统一配置中心中的dataId,之前已经配置过 spring.application.name=service-statistics spring.cloud.nacos.config.namespace=4b34206a-468b-423c-9fc4-31abf2d5aa05 # 开启动态刷新配置,否则配置文件修改,工程无法感知 spring.cloud.nacos.config.ext-config[0].data-id=jdbc.properties spring.cloud.nacos.config.ext-config[0].refresh=true
测试:



