Nacos学习之使用Nacos作为配置中心

news2024/11/27 1:46:25

使用Nacos作为配置中心

简单使用

1、导入依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-config</artifactId>
        </dependency>

2、创建bootstrap.properties文件,在其中对nacos配置中心进行配置

#应用名
spring.application.name=gulimall-product
#配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#配置文件前缀
spring.cloud.nacos.config.prefix=product

3、创建application.properties,在其中配置一些数据

product.user.name=zhangsan
product.user.age=20

4、获取application.properties中的数据,进行测试,可以正常获取到配置文件中的值


    @Value("${product.user.name}")
    private String name;

    @Value("${product.user.age}")
    private String age;

    @RequestMapping("/test1")
    public void test1() {
        System.out.println(name + " " + age);
    }

5、在nacos中创建配置文件并配置数据
在这里插入图片描述
在这里插入图片描述

Nacos Config 主要通过 dataId 和 group 来唯一确定一条配置。Nacos Client 从 Nacos Server 端获取数据时,调用的是此接口 ConfigService.getConfig(String dataId, String group, long timeoutMS)
在 Nacos Config Starter 中,dataId 的拼接格式如下

  • prefix - spring.profiles.active. file-extension,prefix 默认为 spring.application.name的值,也可以通过配置项 spring.cloud.nacos.config.prefix 来配置;
  • spring.profiles.active 即为当前环境对应的 profile,注意,当 activeprofile 为空时,对应的连接符 -也将不存在,dataId 的拼接格式变成prefix.file-extension,file-extension 为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension 来配置。 目前只支持 properties 类型;
    Group:Group 默认为 DEFAULT_GROUP,可以通过 spring.cloud.nacos.config.group 配置

6、重启应用,重新测试,可以看到数据是从nacos中读取的。
在这里插入图片描述

7、目前修改了nacos中配置文件的值,需要重启应用才能更新。可以使用@RefreshScope动态刷新数据,将此注解加到指定的controller上

@RefreshScope

命名空间与配置分组

命名空间:用于进行租户粒度的隔离。不同命名空间下可以存在相同的Group或者Data ID配置。命名空间的常见应用场景是不同环境的配置的区分隔离,例如开发、测试环境和生产环境的配置隔离。

在命名空间菜单下,可以进行创建命名空间等操作,同时可以看到所有的命名空间。图片中有两个命名空间:public和product,public命名空间是默认就存在的。
在这里插入图片描述
当有多个命名空间时,可以通过命名空间id使用指定的命名空间。
在这里插入图片描述

配置集:一组相关或者不相关的配置项的集合称为配置集。在系统中,一个配置文件通常就是一个配
置集,包含了系统各个方面的配置。例如,一个配置集可能包含了数据源、线程池、日志级别等配置项。简单来说配置集就是配置的集合。
配置集ID:即Data ID。配置集 ID 是组织划分配置的维度之一。Data ID 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。简单来说就是配置文件的名称。
在这里插入图片描述
配置分组:Nacos中的一组配置集,是组织配置的维度之一,通过一个字符串对配置集进行分组,从而区分Data ID相同的配置集。创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认为DEFAULT_GROUP。
在这里插入图片描述
在微服务项目中可以为每个服务建立一个命名空间,然后使用配置分组区分不同的环境。

如果我们创建了多个命名空间,默认会使用public命名空间中的对应配置文件。如果想要获取指定命名空间中的配置文件,可以在bootstrap.properties中使用spring.cloud.nacos.config.namespace指定命名空间

spring.cloud.nacos.config.namespace=75f4348e-ec88-46d0-b50e-394bff2dc4fe

如果我们在一个创建了多个配置分组,那么默认会加载DETAIL_GROUP配置分组中的数据,如果想获取指定分组中的数据,可以使用spring.cloud.nacos.config.group配置指定分组。

spring.cloud.nacos.config.group=dev

加载多配置集

在开发中,我们不会把所有的配置写在一个配置文件中,而是会把它拆分为多个配置文件,那么当我们拆分为多个配置文件后,怎么在启动时同时加载这些配置文件呢?
nacos提供了spring.cloud.nacos.config.ext-config配置去加载多个配置文件
在这里插入图片描述
通过下面的方式去加载多个配置文件

#应用名
spring.application.name=gulimall-product
#配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#指定配置集文件的名称
spring.cloud.nacos.config.prefix=product
#指定命名空间
spring.cloud.nacos.config.namespace=75f4348e-ec88-46d0-b50e-394bff2dc4fe

#加载多配置文件
spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true

spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true

参考

  1. Nacos视频
  2. Nacos官网

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

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

相关文章

Vulnhub靶机:MATRIX-BREAKOUT_ 2 MORPHEUS

目录介绍信息收集主机发现主机信息探测网站探测目录爆破反弹shell提权Flag1内核提权 & Flag2介绍 系列&#xff1a;Matrix-Breakout&#xff08;此系列共1台&#xff09; 发布日期&#xff1a;2022 年 7 月 11 日 难度&#xff1a;中级 运行环境&#xff1a;Virtualbox运行…

快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]

一、cqhttp 1. 下载cqhttp 首先安装 cqhttp 框架&#xff0c;我们从 release 界面下载最新版本的 go-cqhttp&#xff0c;需要根据不同的系统选择不同的文件 我目前是mac系统&#xff0c;暂时仅举例macOs Intel 版 Macos&#xff1a; go-cqhttp_darwin_amd64.tar.gz 2. 启动 …

jvm运行过程

VM是Java程序运行的环境,同时是一个操作系统的一个应用程序进程,因此它有自己的生命周期,也有自己的代码和数据空间. JVM体系主要是两个JVM的内部体系结构分为三个子系统和两大组件&#xff0c;分别是&#xff1a;类装载器&#xff08;ClassLoader&#xff09;子系统、执行引擎…

5.1、运输层概述

之前所介绍的计算机网络体系结构中的物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题&#xff0c;实现了主机到主机的通信\color{red}实现了主机到主机的通信实现了主机到主机的通信。 网络层的作用范围主机到主机 但实际上在计算机网络中…

帮助聊天回复的软件

在线客服在工作时&#xff0c;时常能遇到在某一个时间段一大批客户集中咨询的情况&#xff0c;使用客服快速回复软件能够使客服在第一时间进行高效的回复。 前言 在线客服在工作时&#xff0c;时常能遇到在某一个时间段一大批客户集中咨询的情况&#xff0c;通常这种情况下也是…

P2010 [NOIP2016 普及组] 回文日期————C++

题目 [NOIP2016 普及组] 回文日期 题目背景 NOIP2016 普及组 T2 题目描述 在日常生活中&#xff0c;通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用 888 位数字表示一个日期&#xff0c;其中&#xff0c;前 444 位代表年份&#xff0c;接下来 222 位…

算法测试中的召回率和精确率详解

基本概念 TP&#xff08;True Positive&#xff09;&#xff1a;正确的正例&#xff0c;一个实例是正类并且也被判定成正类FN&#xff08;False Negative&#xff09;&#xff1a;错误的反例&#xff0c;漏报&#xff0c;本为正类但判定为假类FP&#xff08;False Positive&am…

基于 java springboot+mybatis二手物品网站系统设计和实现

基于 java springbootmybatis二手物品网站系统设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获…

linux系统中QT里面多线程的使用方法

大家好&#xff0c;今天主要和大脚聊一聊&#xff0c;如何使用QT中的多线程的方法。 第一&#xff1a;多线程基本简介 QThread 线程类是实现多线程的核心类。Qt 有两种多线程的方法&#xff0c;其中一种是继承 QThread 的 run()函数&#xff0c;另外一种是把一个继承于 QObject…

Excel教程

目录 1.设置Excel界面以及保存Excel 1.1 自定义快速访问工具栏 1.2 自定义功能区的使用 1.2.1 自定义选项卡 1.3 自定义页面 1.4 保存时设置文件密码 2.常用的高效操作 2.1 快速填充 2.1.1 快速填充实现拆分重组 2.2 快速分析数据 2.2.1 格式化​编辑 2.2.2 图表&#xff0c…

yolov5 引入RepVGG模型结构

&#xff08;一&#xff09;前情 这个工作已经有大佬用在自己的工程里了&#xff0c;他的帖子链接&#xff1a;https://blog.csdn.net/weixin_45829462/article/details/120372921 但他的这个lite主要不是研究repvgg的&#xff0c;是做移动端的&#xff0c;但是里面加了这个re…

【BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

Linux应用编程---13.网络编程

Linux应用编程—13.网络编程 ​ 网络编程要熟悉一些计算机网络有关的名词&#xff0c;可以先做了解&#xff0c;后续实际开发在深入研究&#xff0c;自上而下学习。与本次Linux应用编程有关的就是TCP与UDP协议。简明概念如下图1所示。 图1 计算机网络体系结构 ​ 前面学习的进…

数控机床各种加工模式以及英文简写

AUTO&#xff08;自动模式&#xff09; 机床自动运行加工程序&#xff0c;对零件进行加工。前提是所编的程序经过试验后是可行的&#xff0c;而且是加工出来的件经过检验后是合格的&#xff0c;才可以使用该程序。 EDIT&#xff08;编辑模式&#xff09; 在此模式下&#xff…

Spring Boot集成第三方登录之微博登录

准备工作 微博开放平台&#xff1a;https://open.weibo.com/ 网站接入 登陆微博开放平台&#xff0c;进入微连接&#xff0c;选择网站接入 点击立即接入 开发者信息认证 填写开发者信息与身份认证信息 创建应用 开发者信息认证通过后即可创建应用。 应用创建成功后会得到app …

哪种台灯质量好又实惠?性价比最高的护眼台灯

l 只要台灯质量过关就是及格的第一步&#xff0c;首先就是有3C质量认证&#xff0c;符合国A或国AA照度标准。l 显色也会是很重要的&#xff0c;光源品质高的产品&#xff0c;显色性不会低于Ra90的&#xff0c;太阳光的显色指数&#xff1d;100&#xff0c;那么意味着显色指数越…

一文详解Paramiko安装与使用

项目要求 定期向特定服务器传输软件运行状况文件&#xff08;基于SFTP&#xff09;&#xff0c;因此计划写一个Python脚本&#xff0c;该脚本首先要定期读取产品运营数据&#xff0c;然后按要求生成数据文件&#xff0c;最后通过 Paramiko 上传到SFTP服务器。 这篇文章是我在实…

【Spring源码】19. 没合适的构造器?找determineCandidateConstructors()!

上篇介绍了instantiateBean()&#xff08;其实这个方法在后面还会再次被调用&#xff09;如果在前两篇的内容结束后都还未获取到构造函数&#xff0c;那么则继续向下执行&#xff0c;调用determineConstructorsFromBeanPostProcessors()方法determineConstructorsFromBeanPostP…

如何确定梯度消失/爆炸和解决梯度消失/爆炸

1、梯度消失的原因和表现1.1、梯度消失的原因&#xff1a;在深层网络中&#xff0c;如果激活函数的导数小于1&#xff0c;根据链式求导法则&#xff0c;靠近输入层的参数的梯度因为乘了很多的小于1的数而越来越小&#xff0c;最终就会趋近于0&#xff0c;例如sigmoid函数&#…

【C++常用算法】STL基础语法学习 | 算数生成算法集合算法

目录 ●accumulate ●fill ●set_intersection ●set_union ●set_difference ●accumulate 1.功能描述&#xff1a; 计算容器内元素累计总和 2.查看accumulate定义下底层代码的函数原型&#xff1a; 3.向vector容器中插入0~100&#xff0c;使用accumulate算法去计算其和…