Nacos配置管理

一.nacos统一配置

1.nacos管理页面添加配置
2.新建配置

DataID 是多部分组成,第一部分就是服务名称,第二部分就是开发环境,第三部分就是后缀名,具体环境配置时,就是 [ 服务名 ]-[ profile ].[ 后缀名 ]

多环境配置时,就是**[ 服务名 ].[ 后缀名 ]** ,可以省去中间的开发环境,也就是指定的服务无论是开发或者测试环境都可以共享此配置。

分组默认即可。

格式支持 yaml 和 properties

具体配置内容,只需要有热更新需求的配置就可以,不要把所有配置都放进来

二.微服务配置拉取

项目启动读取本地配置文件 application.yml 之前,需要读取 nacos中的配置文件,所以application.yml 中的 nacos 地址等信息需要提前被项目读取,所以需要一个 bootstrap.yml 文件。此文件是引导文件,优先级比 appliaction.yml 优先级高,会被先读取,所以可以把nacos的地址等信息放入此文件。

1.引入Nacos配置管理客户端依赖

复制代码
 <!-- nacos配置管理依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

2.新建 bootstrap.yml文件,配置信息如下,如果该服务属于自定义的命名空间,还需要在config下配置 namespace 指定命名空间 id

如果springcloud版本过高,spring-cloud-dependencies不再默认加载bootstrap.yaml 文件,就会一直报错

Param 'serviceName' is illegal, serviceName is blank

此时就需要添加 bootstrap的 依赖

复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

然后重启项目即可

三.配置热更新

在需要使用nacos热更新配置的类中添加注解 @RefreshScope 即可,更新nacos控制页面中的具体配置内容后,不需重启项目,新配置依旧生效

四.配置共享

微服务启动,会从nacos读取多个配置文件,如 [ 服务名 ]-[ profile ].[ 后缀名 ]

[ 服务名 ].[ 后缀名 ]

无论 profile 是否变化,[ 服务名 ].[ 后缀名 ] , 的文件一定会加载,所以相同服务不同环境下共享的配置可以写入此文件

多种配置的优先级为:

nacos中的配置大于项目本地配置

nacos中的配置 [ 服务名 ]-[ profile ].[ 后缀名 ] 配置大于 [ 服务名 ].[ 后缀名 ] 配置

总的来说就是

相关推荐
寻星探路16 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
曹牧18 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
爬山算法19 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty72519 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎19 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄19 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
忆~遂愿20 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
小韩学长yyds20 小时前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable
java·序列化
仟濹20 小时前
【Java基础】多态 | 打卡day2
java·开发语言