第六节:Nacos配置管理

nacos配置文件bootstrap.yml springcloud 阅读详情

1、Nacos配置管理

统一配置管理:

我们服务中配置如果都放在代码中或者项目里的配置文件中,那么我们如果要修改配置,就不得不修改代码,提交上线,重启服务。

如果我们使用统一配置管理,就可以在服务启动的时候从配置管理服务读取配置,启动后,修改配置后,也会主动通知我们的服务。

截屏2022-04-04 下午3.18.16

1.1、新建配置

点击新建配置

截屏2022-04-04 下午3.19.29

DataId是唯一的,所以,命名需要注意,这里使用服务名+环境标识。

group默认,配置格式选择yaml,内容填写需要热更新的配置。

添加配置内容

截屏2022-04-04 下午3.22.02

点击页面最后的发布

点击页面最后的发布

截屏2022-04-04 下午3.27.41

2、服务获取配置

服务启动的时候,获取读取nacos配置文件,然后读取本地配置文件,然后将配置合并,然后创建Spring容器,加载bean。

截屏2022-04-04 下午3.29.06

我们要在读取本地配置文件前,获取nacos服务地址,bootstrap.yml文件读取的优先级高与application.yml文件,所以,nacos相关的配置需要放在bootstrap.yml文件中。

2.1、引入依赖

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

2.2、添加bootstrap.yml文件

添加后,在application.yml文件中去除重复的配置。

spring:
    application:
        name: userservice
    profiles:
        active: dev
    cloud:
      nacos:
          server-addr: 192.168.0.105:8848
          config:
              file-extension: yaml #文件后缀名

3.3、使用配置

比如我们定义的是:

uservice:
  open: 1

通过@Value进行使用

    @Value("${userservice.open}")
    private String open;

    @GetMapping("open")
    public String open(){
        return open;
    }

启动访问open接口,可以拿到配置值1。但这个时候还不支持热更新。

3.4、总结

1、在Nacos中添加配置文件

2、在微服务中引入nacos的config依赖

3、在微服务中添加bootstrap.yml,配置nacos地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪个文件

3、配置热更新

Nacos中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现:

3.1、@RefreshScope

在@Value注入的变量所在类上添加注解@RefreshScope

修改配置后,会有以下日志:

04-04 15:49:28:229  INFO 63084 --- [ternal.notifier] o.s.c.e.event.RefreshEventListener       : Refresh keys changed: [userservice.open]
04-04 15:49:28:229  INFO 63084 --- [ternal.notifier] c.a.nacos.client.config.impl.CacheData   : [config_rpc_client] [notify-ok] dataId=userservice-dev.yaml, group=DEFAULT_GROUP, md5=01bc6b07f4e6ae29eaed0b9d54ed635e, listener=com.alibaba.cloud.nacos.refresh.NacosContextRefresher$1@2ef74e78 ,cost=227 millis.

3.2、@ConfigurationProperties

使用@ConfigurationProperties注解,前缀和变量名拼接后的名字,从配置中匹配。

@Data
@ConfigurationProperties(prefix = "userservice")
@Component
public class PatternProperties {
    private String open;
}

4、多环境配置共享

如果我们多个环境,开发、测试、生产,所有环境都需要某些相同的配置,我们就需要一个多环境配置共享。

微服务启动时会从nacos读取多个配置文件:

  • [spring.application.name]-[spring.profiles.active].yaml,例如:userservice-dev.yaml
  • [spring.application.name].yaml,例如:userservice.yaml

无论profile如何变化,[spring.application.name].yaml这个文件一定会加载,因此多环境共享配置可以写入这个文件

4.1、nacos新增配置

截屏2022-04-04 下午4.07.22

userservice.yaml所有环境都能访问到,xx-dev只有对应环境才能访问到。

4.2、多种配置的优先级

服务名-profile.yaml > 服务名.yaml > 本地配置

总结:

微服务会从nacos读取的配置文件:

[服务名]-[spring.profile.active].yaml,环境配置

[服务名].yaml,默认配置,多环境共享

优先级:

[服务名]-[环境].yaml >[服务名].yaml > 本地配置

5、多服务共享配置

5.1、nacos配置后台新增配置common.yaml

5.2、代码配置修改

使用shared-configs或者extends-configs,来访问其他的配置

spring:
    application:
        name: userservice
    profiles:
        active: dev
    cloud:
      nacos:
          server-addr: 192.168.0.105:8848
          config:
              file-extension: yaml #文件后缀名
              shared-configs: common.yaml #可以访问的配置文件
              #extends-configs: common.yaml

5.3、优先级

服务名-profile.yaml >服务名称.yaml > extension-config > shared-config > 本地配置

服务注册到 Nacos 全流程实操教程 在上一篇基于docker-compose部署微服务基本环境,我们完成的基础服务的搭建,接下来就开始本地创建一些服务,将其注册到服务注册中心中。 阅读详情

相关推荐

Nacos 配置服务客户端源码分析

本篇介绍了两个核心类CacheData和ClientWorker的一些核心方法和说明。希望帮助大家更深一步理解获取配置信息,通知,回调的机制、流程。下篇开始,我们从服务端的角度,分析下服务端是怎么处理客户端请求。作者:ruipost。

BASK2312的博客 911

Nacos小实验总结

: 服务的配置文件执行先后: 实验背景: 一个服务本身有配置文件,nacaos配置中心也又配置文件 对于端口等需要服务器重启生效的配置不会热启动。 实验:nacos修改服务端口号 服务的端口号没有改变 重启服务才可以。 对于相通配置项 两边都有的配置,服务会以nacos配置中心的配置为主。(nacos的配置项会覆盖掉服务的自身配置项) 服务本地配置端口7001 nacos配置服务端口号为7005 启动服务 服务占用了端口7005. 对于nacos配置没有说明的配置项,如果本地配置有则会

Phor的博客 1642

Springboot项目中使用邮箱验证码注册登录的代码实现

本文介绍了在Spring Boot应用中实现邮箱验证码注册和登录功能的完整方案。文章首先概述了三种用户认证方式(邮箱验证码注册/登录和传统密码登录),然后详细说明了实现所需的技术栈(Spring Boot、Spring Security、JWT等)。重点阐述了邮件服务配置、验证码生成与存储的核心实现,包括QQ邮箱授权码获取、Thymeleaf邮件模板处理以及验证码缓存管理。最后展示了发送验证码和用户注册的API实现,为开发者提供了完整的参考方案。该方案兼顾安全性和用户体验,适合现代Web应用的用户认证需求。

BXCQ_xuan的技术专栏 | 实战干货·实践教程·学习笔记 1337

本地配置优先于nacos配置

默认本地配置不覆盖nacos配置,需要开启配置。

Mr_Ji_W_T的博客 8346

随机森林的可解释性分析(含python代码)

随机森林的“黑箱”特性逐渐凸显,这使得我们难以理解和解释模型内部的工作机制。对于许多应用场景而言,仅仅获得高准确率的预测结果是不够的;了解预测背后的逻辑同样重要,特别是在医疗诊断、金融风险评估等领域。因此,对随机森林进行可解释性分析变得尤为重要。

m0_59257547的博客 3847

从隐式求解器到显式求解器:COMSOL接触仿真中的求解策略对比与选择

本文深度解析了COMSOL中隐式与显式求解器在接触仿真中的应用与选择策略。针对非线性接触问题的核心挑战,详细对比了两种求解器的数学框架、优化技术及适用场景,并提供了参数调优和调试技巧,帮助工程师高效解决接触仿真中的收敛问题。

weixin_28347369的博客 681

SpringCloud学习-第六节-Nacos

一、Nacos 1.服务注册 (1)pom文件 <dependencies> <!--SpringCloud ailibaba nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery

qq_41820828的博客 769

学习记录(十一)--Pattern Recognition投稿记录

上一周特别忽然通知统计建模要答辩,确定是否晋级国赛,一直在准备答辩的事情,所以上一周没有总结周汇报,深刻检讨!!!不过结果是好的,我们组第二名晋级哦。这周主要是跟大家分享一下我投稿PR(Pattern Recognition)的一个时间线,以及投稿后的工作。一、PR从投稿到接收的时间线2025.4.3 Major Revision(ddl4.23) 当时正在弄比赛和另一个着急推进的文章2025.5.30 Minor Revision 这次小修基本上只有一些格式和简单一点点问题。

qq_54949944的博客 1913

《专题五 容器化微服务》之《第一章【补充资料】-SpringCloud》之《第五节 Springcloud生态》、《第六节 Springcloud-alibaba》

文章目录《1.5.1 Stream消息驱动》《1.5.2 Bus事件传播机制》《1.5.3 分布式链路追踪sleuth》《1.5.4 Gateway网关组件》 《1.5.1 Stream消息驱动》 4 29 Spring Cloud Stream介绍: 《1.5.2 Bus事件传播机制》 《1.5.3 分布式链路追踪sleuth》 14 48 链路追踪核心概念: 16 29 Sleuth和Zipkin搭配: 19 23 Sleuth核心原理: 《1.5.4 Gateway网关组件》 ...

qq_23204557的博客 189

《UDS协议从入门到精通》系列——图解0x27:安全访问

什么是安全访问服务?应用场景和基本原理是什么?全网最直观详细的图解UDS-0x27:安全访问服务!!

车载系统攻城狮 7228

Eplan设计师必会—伺服安全回路的设计方法

本文介绍了在EPLAN中设计伺服STO安全回路的方法。首先需查阅伺服驱动器说明书确定STO接线端子,重点关注双通道配置。设计步骤包括:使用黑盒子功能绘制驱动器外形,正确标注STO接线点,并连接安全继电器或PLC的安全输出。关键注意事项有:必须采用双通道独立布线,确保同步动作,遵循故障安全原则,使用常闭触点串联回路。文中以西门子V90和汇川伺服为例说明具体接线要求,并附有项目实例参考。

Qinmingyue13的博客 436

尚医通_第10章_后台医院管理模块

文章目录 第10章_后台医院管理模块 第一节.医院管理模块需求分析 一、医院管理系统 1、医院列表 2、医院详情 第二节.注册中心与服务调用 一、Nacos 1、基本概念 2、Nacos下载和安装 第二节.医院列表功能 一、医院列表功能(接口) 1、添加service分页接口与实现 2、添加controller方法 3、service_cmn模块提供接口 4、封装Feign服务调用 4.1 搭建service_client父模块 4.2 在service_client模块引入依赖 5、医院接口远程调用数据字

无 514

深度拆解 ‘High-Frequency Trading’ (HFT) 系统:解析如何在 100 纳秒内完成从网卡到 C++ 策略的响应

在100纳秒内完成从网卡到C++策略的响应,这是一项对技术栈每一个层面都进行极限优化的系统工程。它要求我们深入理解计算机体系结构、操作系统、网络协议和C++语言的底层机制。从物理距离的极致缩短,到高性能网卡和内核旁路技术,再到C++代码中每一个字节、每一个CPU周期的精打细算,HFT系统展现了人类对计算速度的永恒追求。这项技术不仅仅应用于金融交易,其背后的低延迟理念和实现方法,如DPDK、无锁编程、硬件加速等,正在逐渐渗透到其他对延迟敏感的领域,例如电信网络、边缘计算和工业自动化。

weixin_41455464的博客 1039

轻松上手nacos使用

微服务众多,它们的配置信息也非常复杂,为了提高系统的可维护性,微服务的配置信息统一在 Nacos 配置。通用配置可共享使用。配置无误后nacos会根据配置将服务拉至服务列表,并读取nacos中配置与本地配置合并后生效。微服务将自身注册至 Nacos,网关从 Nacos 获取微服务列表。3.在名为bootstrap.yml中配置。但可在nacos中配置优先本地配置。4.在nacos中新建配置。1.创建所用的命名空间。2.在工程中引入依赖。

RX1125的博客 1300

解决群晖NAS无法拉取docker镜像问题

在2024-06-01日以前,使用SSH登录后是可以直接拉取docker镜像的;但是之后当我们使用SSH登录上群晖NAS,使用【sudo -i】切换到超管拉取镜像会提示报错【error pulling image configuration: Get "https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/cf/cff6b68a194a672fd337d8728bfb252071012cce6

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SpringCloud使用Nacos作为配置中心配置本地配置优先

如果本地配置优先级高,那么 override-none 设置为 true,包括系统环境变量、本地配置文件等配置。项目使用的是springcloud+nacos然后所有端口都是一样的导致本地启动不了,应该配置成这样使用本地设置的端口有优先。

他的的博客空间 1491

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

4.SpringBoot配置及Nacos配置中心加载顺序及覆盖生效优先关系

SpringBoot各配置加载顺序、生效覆盖关系(生效优先级关系)。并在本地基础上,与Nacos配置中心一起,观测Nacos配置与本地配置加载顺序、生效覆盖关系 bootstrap.yaml bootstrap.properties bootstrap-{profile}.yaml bootstrap-{profile}.properties application.yaml application.properties application-{profile}.yaml application-{pro

zyplanke的专栏 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Nacos配置优先级

nacos启动配置

weixin_44837916的博客 1672

Nacos 配置中心实际运用场景以及配置优先级简要概述

该篇博文讲解在实际工作如何使用 Nacos 、配置动态刷新的运用,对 Spring Cloud 新老版本的依赖引入作了描述,从 2021.0.1.0 版本开始,移除了 spring-cloud-starter-bootstrap 依赖,最后,对配置的优先级作了区分,对不同环境配置、不同微服务如何共享配置做了详细的介绍,下篇文章让我们从源码的角度来看 Nacos 是如何加载配置的!

vnjohn 博主 > 主线分享后端领域业务设计知识、源码思想、架构设计 5874

SpringCloud整合nacos配置中心bootstrap.yml多环境配置

我们在SpringCloud项目引入nacos作为配置中心后,为了方便开发,通常会有:local、test、prod等多个环境,本地调试代码用local的配置,测试环境打包用test的配置,生产环境打包用prod配置。本文以实际项目为例,给出了配置方法。并且基于生产环境,nacos账密需要定期修改,给出了生产环境配置bootstrap.yml配置文件的方案,仅供参考。

weixin_42925623的博客 1万+

思考:Nacos中的数据集和application.properties有相同的配置项,哪个生效?

命令行参数(如JVM 系统属性(如Nacos 配置中心配置(默认高于本地配置);本地(如本地;Spring Boot 默认配置。

2401_89052850的博客 1179

springboot bootstrap.yml nacos配置中心

一.本地Nacos安装环境: Win7 ,JDK8 ,maven3.5 1.下载安装包 2.启动nacos服务,bin文件下下面startup.cmd 3.访问 http://localhost:8848/nacos 二.整合Springboot Springboot版本如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>sp...

wdquan19851029的专栏 1万+

nacos和本地配置文件的优先级

nacos和本地配置文件的优先级

qq_21277357的博客 3414

nacos配置文件优先级

nacos配置文件优先级

Lemon_MY的博客 1万+

Nacos配置管理篇

这一篇主要学习:1.微服务拉去配置Nacos配置2.Nacos配置的热更新3.多环境配置的读取和优先级项目启动正常流程:Nacos配置管理,这些配置以后多用来做热更新,存放一些开关配置信息,方便以后统一管理服务流程如下:我们引入了bootstrap.yml,因为项目启动要先读nacos的配置,以前的nacos地址配置在yml中了,我们没法获取nacos地址。而bootstrap.yml的优先级更高,我们把nacos地址存在这里面,项目启动时,然后根据地址按照流程图以此进行。

m0_66532138的博客 1761

bootstrap.yml读取nacos配置中心的配置文件

最近搞nacos做为springboot的配置中心时,运行项目就一直报错,报错原因是没有加载到配置文件,可是nacos服务的地方又确确实实配置了配置文件,最后在启动的控制台中找到了一些线索,结合百度和源码查看找到了原因所在。 线索:(ps:因为不知道怎么截横向的长图只能这样了) 项目启动时的控制台输出 写着需要 spring.application.name.properties配置文件 后面找到了PropertySourceBootstrapConfiguration类 应该是默认读取配置中心以p

six_teen的博客 2万+
上一篇: 第五节:Nacos服务搭建和负载均衡规则
下一篇: 第七节:Nacos集群搭建
七号公园的忧伤
七号公园的忧伤 新星创作者: Java技术领域 新星创作者: Java技术领域
博客等级 码龄6年 4857粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七号公园的忧伤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值