上一篇:SpringCloud 入门(2)—— 跨服务调度-CSDN博客
Nacos是阿里巴巴开源的服务发现与配置管理基础设施,旨在帮助开发者更轻松地构建云原生应用。它提供了一组简单易用的特性集,支持动态服务发现、配置管理和服务管理,适用于微服务架构和云原生应用环境。
1.nacos如何去定位一个具体的配置文件呢?
即:namespace、group、dataid.
1、通过namespace、group找到具体的环境和具体的项目。
2、通过dataid找到具体的配置文件,dataid有三部分组成
比如:content-service-dev.yaml配置文件 由(content-service)-(dev). (yaml)三部分组成
content-service:第一部分,它是在application.yaml中配置的应用名,即spring.application.name的值。
dev:第二部分,它是环境名,通过spring.profiles.active指定
Yaml: 第三部分,它是配置文件 的后缀,目前nacos支持properties、yaml等格式类
导入依赖
<!--将应用程序的配置从本地文件迁移到外部配置中心,实现配置的集中管理和动态刷新。--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>
此时就可以将本地的配置,如mysql连接的配置,交由nacos管理(注意复制上去时不要掉了spring)
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://124.70.208.223:3306/xcplus_content?serverTimezone=UTC&useUnicode=true&useSSL=falseusername: rootpassword: root
logging:config: classpath:log4j2-dev.xml
server:servlet:context-path: /contentport: 63040
本地只需要保留这些配置,用户指定运行环境和nacos地址
#微服务配置
spring:application:name: content-api # 微服务名称cloud:nacos:server-addr: 124.70.208.223:8085discovery:namespace: dev # Nacos 服务管理的命名空间,用于隔离不同环境的服务group: xuecheng-plus-project # Nacos 服务发现的组名,用于进一步隔离服务config:namespace: dev # Nacos 配置管理的命名空间,用于隔离不同环境的配置group: xuecheng-plus-project # Nacos 配置管理的组名,用于进一步隔离配置file-extension: yaml # Nacos 配置文件的扩展名,这里指定为 YAML 格式refresh-enabled: true # 是否启用配置的动态刷新功能profiles:active: dev # 指定当前环境为开发环境
部署完成后重新运行程序,依旧生效
2.公共配置
shared-configs
适用于多个应用都需要的一些通用配置,例如 日志配置。
在我们的项目中,有一些公共的配置,在任何模块中可能都会用到,我们可以将他单独提取出来。如:日志信息
使用shared-configs属性,引用该配置
spring:application:name: content-servicecloud:nacos:server-addr: 124.70.208.223:8085config:namespace: devgroup: xuecheng-plus-projectfile-extension: yamlrefresh-enabled: trueshared-configs:- data-id: logging-${spring.profiles.active}.yamlgroup: xuecheng-plus-commonrefresh: trueprofiles:active: dev
3.扩展配置
extension-configs:
适用于需要为特定应用添加额外配置的情况,例如某些特殊的功能配置或环境变量。
extension-configs
与shared-configs作用一样,语义不同
spring:application:name: content-api # 微服务名称cloud:nacos:server-addr: 124.70.208.223:8085discovery:namespace: dev # Nacos 服务管理的命名空间,用于隔离不同环境的服务group: xuecheng-plus-project # Nacos 服务发现的组名,用于进一步隔离服务config:namespace: dev # Nacos 配置管理的命名空间,用于隔离不同环境的配置group: xuecheng-plus-project # Nacos 配置管理的组名,用于进一步隔离配置file-extension: yaml # Nacos 配置文件的扩展名,这里指定为 YAML 格式refresh-enabled: true # 是否启用配置的动态刷新功能extension-configs:- data-id: logging-${spring.profiles.active}.yamlgroup: xuecheng-plus-commonrefresh: true
4.配置文件优先级
默认情况下,各配置文件 的优先级:项目应用名配置文件 > 扩展配置文件 > 共享配置文件 > 本地配置文件。
为了方便,我们一般会在nacos中配置本地优先
#配置本地优先
spring:cloud:config:override-none: true