【Nacos】配置中心

news2024/11/25 2:53:34

Nacos除了注册中心和负载均衡之外,还是一个配置中心,具备配置管理的功能。

Nacos 配置中心是一种用于集中式管理应用程序配置的服务,它可以将应用程序的配置从代码和本地配置文件中分离出来,实现配置的集中管理和动态更新。通过 Nacos 配置中心,开发者可以:

  1. 集中化配置管理:将不同应用和环境的配置集中在一个地方进行管理。
  2. 动态配置更新:支持配置的实时刷新,无需重启应用。
  3. 版本管理和灰度发布:支持配置的版本管理和灰度发布,可以在配置更新时对不同的环境和实例逐步生效。
  4. 多环境支持:支持多环境的配置管理,如开发、测试和生产环境等。

服务启动时,从配置中心读取配置项的内容,进行初始化。

配置项修改时,通知微服务,实现配置的更新加载. 

1. 快速上手

1.1 添加配置(添加完,服务才可以读取)

在配置列表中可以添加上配置,注意这里的配置也有命名空间,但这里的命名空间和环境隔离(服务管理)的命名空间并不是一致的。

点击创建配置

Data ID和服务名称保持一致,点击发布,观察现在一个配置项已经发布成功。

配置内容:nacos.config = public

这个配置的命名空间是public,继续在dev命名空间下创建一个配置文件。

配置内容:nacos.config = dev

现在针对public和dev空间都有一个配置。

1.2 引入相关依赖

需要引入nacos-config依赖和starter-bootstrap依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!-- SpringCloud 2020.*之后版本需要引⼊bootstrap-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

1.3 修改配置文件(从哪里读取配置,配置ip等信息)

注意这里修改配置文件并不是和之前配置相关信息一样。

微服务启动前,需要先获取nacos中配置,并与application.yml配置合并,在微服务运行之前,Nacos要求必须使用 bootstrap.properties 配置文件来配置Nacos Server 地址.

新建一个bootstrap配置文件,然后配置服务名称和nacos地址

注意:

  • spring.application.name 需要和nacos配置管理的Data ID⼀致
  • spring.cloud.nacos.config.server-addr 为Nacos Server的地址

1.4 编写程序,测试

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/config")
@RefreshScope
@RestController
public class NacosConfigController {

    @Value("${nacos.config}")
    private String nacosConfig;


    @RequestMapping("getConfig")
    public String getConfig(){
        return "从Nacos成功获取到配置信息:" + nacosConfig;
    }
}

访问 http://localhost:9090/config/getConfig

可见获取到的是public命名空间下的环境。

如果希望可以实现配置的热更新,加上@RefreshScope注解

2. 配置中心详解

2.1 设置配置中心命名空间

通过上面的测试发现我们现在拿到的是public下的配置,如果希望拿到其他命名空间下的配置信息该怎么办呢?

这里的命名空间和服务的命名空间是分别设置的。

这时候Nacos命名空间配置就然在bootstrap配置文件中进行配置。

设置了命名空间,项目启动后,就会从该命名空间下找对应的配置项

保存配置后,重启服务。访问接口,观察结果:

修改配置文件,dev--> dev2,访问到的数据随之改变

2.2 Data Id详解

Data-Id的完整格式:${prefix}-${spring.profiles.active}.${file-extension}

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

微服务启动时, 会从Nacos读取多个配置⽂件:
三个⽂件的优先级为: product-service-dev.properties > product-service.properties > product
service

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2123779.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

刘润《关键跃升》读书笔记7

沟通&#xff1a; 想明⽩&#xff0c;说清楚&#xff0c;能接受 团队沟通的正确⽅式可以⽤9个字来概括&#xff1a;想明⽩&#xff0c;说清楚&#xff0c;能接受 &#xff08;⻅图4-1&#xff09;想明⽩ 有时经理跟⼈沟通&#xff0c;讲完之后却⽆奈地对员⼯说&#xff0c;你怎…

远程访问电脑共享文件

远程访问电脑共享文件&#xff0c;可以通过多种方法实现&#xff0c;每种方法都有其特点和适用场景。以下是一些常见的方法及其步骤&#xff1a; 一、使用Microsoft远程桌面 启用远程桌面&#xff1a; 在目标电脑上&#xff0c;打开“开始”菜单&#xff0c;选择“设置”>“…

常见概念 -- WDM/OTN 时延

什么是时延&#xff1f; 在通信网络中&#xff0c;时延指原始数据经一台转发设备的编码等一系列处理过程后由发送端发送&#xff0c;通过传输链路传输&#xff0c;到达另一台&#xff08;目的地&#xff09;设备的接收端并解码还原为原始数据所花费的时间。网络时延主要由以下几…

多维时序 | Matlab基于TCN-Transformer+LSTM双输入神经网络时间序列预测

多维时序 | Matlab基于TCN-TransformerLSTM双输入神经网络时间序列预测 目录 多维时序 | Matlab基于TCN-TransformerLSTM双输入神经网络时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于TCN-TransformerLSTM双输入神经网络时间序列预测&#xff…

基于SpringBoot的校园自助洗衣服务管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的校园自助洗衣服务…

SAP Fiori-Vscode 环境搭建中npm报错

文章目录 前提&#xff1a; vscode 安装好了&#xff0c;node 配置完毕&#xff0c;npm环境搭建OK新建一个Fiori 初始化初始化性项目的报错&警告Q1: npm WARN config global --global, --local are deprecated. Use --locationglobal insteadQ2: npm打包出现警告&#xff0…

GPU池化赋能智能制造

2023年3月10日&#xff0c;“第六届智能工厂高峰论坛”在杭州隆重揭幕。本次会议由e-works数字化企业网、浙江制信科技有限公司主办&#xff0c;中国人工智能学会智能制造专业委员会、长三角新能源汽车产业链联盟、长三角(杭州)制造业数字化能力中心、浙江省智能工厂操作系统技…

基于微信小程序的宠物之家的设计与实现

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的宠物之家/宠物综合…

Redis复习笔记整理(2w+)

目录 1、Redis简介 1.1 补充数据类型Stream 1.2 Redis底层数据结构 1.3 Redis为什么快 1.4 持久化机制* 1.4.1 RDB持久化 bgsave执行流程 如何保证数据一致性 快照操作期间服务崩溃 RDB优缺点 1.4.2 AOF持久化 为什么采用写后日志 如何实现AOF 什么是AOF重写 AO…

vue项目中引入组件时出现的Module is not installed问题

在Vue项目中&#xff0c;如果遇到了如图“Module is not installed”这样的错误&#xff0c;通常这 个错误并不是直接由Vue或Vue CLI本身抛出的&#xff0c;而是可能因为几个不同的原因导致的。 这个错误可能是在你尝试引入一个模块或组件时&#xff0c;该模块或组件并没有被正…

java基础 | 动态代理

动态代理 简而言之就是&#xff1a;首先创建一套动态代理的规则&#xff0c;创建好自己的接口&#xff0c;和实现类&#xff0c;在调用时直接调用&#xff08;缺少什么参数&#xff0c;补充哪个参数&#xff01;&#xff09; 实现步骤&#xff1a; 设计动态代理的规则&#x…

Windows系统下编译C++源码并调用

现在很多的C库都以源码的形式在github网站开源&#xff0c;如果要使用&#xff0c;可以直接下载到本地&#xff0c;添加到工程中调用。也可以将源码编译为动态或静态库文件&#xff0c;然后将库文件添加到工程中。 在这里我们将GoogleTest源码编译&#xff0c;然后加到工程中。…

OpenGL(三)着色器语言GLSL

着色器语言 在GPU上运行的图形渲染语言&#xff0c;类C风格。 类似于CUDA&#xff0c;但是又没有CUDA通用&#xff0c;又有点像Verilog这种硬件描述语言 GLSL是一种着色器语言&#xff0c;需要有对应的图形API环境配合&#xff0c;可以使用OpenGL&#xff0c;也可以使用OpenGL…

Proteus仿真综合实例(1)

分享一些基于Proteus的仿真实例&#xff0c;供大家学习参考。 1、51单片机230个Proteus仿真实例 包含基于51单片机的230个仿真实例&#xff0c;涉及定时器、中断、LCD显示、DS18B20温度测量、DS1621温度测量、PWM生成等充足电路模型案例。 2、51交通灯 模拟实现基于51单片机…

音视频入门基础:AAC专题(2)——使用FFmpeg命令生成AAC裸流文件

在文章《音视频入门基础&#xff1a;PCM专题&#xff08;1&#xff09;——使用FFmpeg命令生成PCM音频文件并播放》中讲述了生成PCM文件的方法。通过FFmpeg命令可以把该PCM文件转为AAC裸流文件&#xff1a; ./ffmpeg -f s16le -ar 44100 -ac 2 -i audio1.pcm audio1.aac 由于…

《论层次架构及其在软件系统中的应用》写作框架,软考高级系统架构设计师

论文真题 层次架构作为软件系统设计的一种基本模式&#xff0c;对于实现系统的模块化、可维护性和可扩展性具有至关重要的作用。在软件系统的构建过程中&#xff0c;采用层次架构不仅可以使系统结构更加清晰&#xff0c;还有助于提高开发效率和质量。因此&#xff0c;对层次架…

【笔记】2.2 黏土类原料

黏土类原料&#xff0c;用于制备陶瓷、耐火材料和水泥&#xff0c;为制品成型提供必须的可塑性&#xff0c;悬浮性。 2.2.1 黏土的成因和分类 黏土主要成分&#xff1a;含水硅铝酸盐 黏土形成&#xff1a;硅铝酸盐岩石经过长期地质时代的自然风化或热液蚀变作用而逐步形成。…

Elasticsearch-数据迁移elasticdump

一、环境信息 主机名 IPelasticsearch-master10.10.10.1elasticsearch-slave10.10.10.2 二、互联网部分 2.1、Nodejs下载安装&#xff08;master节点&#xff09; #官网&#xff1a;Download | Node.js #下载nodejs包 [rootelasticsearch-master home]# wget -c htt…

协议头,wireshark,http

目录 协议头 ip头 udp头 mac层 网络工具 telnet wireshark Http 一、HTTP 协议介绍 二、HTTP 协议的工作过程 三、使用抓包工具抓取报文 四、获取到http请求报文&#xff1a; 五、http请求&#xff08;request&#xff09; &#xff08;一&#xff09;、认识URL 项…

Redis 入门 - 五大基础类型及其指令学习

经过前面Redis入门系列三篇文章学习&#xff0c;相信大家已经准备好学习新知识了&#xff0c;到这里也算是真正开始学习Redis了。学习了软件安装&#xff0c;客户端选择&#xff0c;那么接下来也应该来了解Redis有什么&#xff0c;能干什么。 我们在第一章中就说过&#xff0c…