谷粒商城学习笔记-23-分布式组件-SpringCloud Alibaba-Nacos配置中心-简单示例

之前已经学习了使用Nacos作为注册中心,这一节学习Nacos另外一个核心功能:配置中心

一,Nacos配置中心简介

Nacos是一个易于使用的平台,用于动态服务发现和配置管理。作为配置中心,Nacos提供了以下核心功能和优势:

  1. 动态配置管理:Nacos允许用户在不重启服务的情况下动态地修改和推送配置信息,实现配置的实时更新。

  2. 配置集中存储:Nacos提供了一个中心化的配置存储,使得配置信息易于管理和维护,避免了配置分散在不同环境和系统中的问题。

  3. 配置版本控制:Nacos支持配置的版本控制,可以追踪配置的变更历史,方便进行回滚操作。

  4. 配置共享:Nacos允许跨服务共享配置,提高配置的复用性,减少冗余。

  5. 配置隔离:通过命名空间(Namespace)的概念,Nacos支持不同环境(如开发、测试、生产)的配置隔离,确保环境间的配置不会相互干扰。

  6. 配置监听和推送:Nacos提供了配置监听功能,当配置发生变化时,可以主动推送更新到客户端,实现配置的热更新。

  7. 安全性:Nacos支持配置的访问控制和权限管理,确保只有授权用户才能访问或修改配置。

  8. 多环境支持:Nacos支持多种部署环境,可以满足不同规模和需求的配置管理。

  9. 与Spring Cloud集成:Nacos与Spring Cloud紧密集成,提供了spring-cloud-starter-alibaba-nacos-config等组件,简化了在Spring Cloud应用中使用Nacos配置中心的过程。

  10. 易用性:Nacos提供了友好的用户界面,使得配置的查看、修改和管理变得直观简单。

Nacos作为配置中心,适用于微服务架构、云原生应用以及需要动态配置管理的分布式系统。通过集中管理配置,Nacos帮助企业提高了配置管理的效率和安全性,同时也简化了开发和运维的工作。

二,Nacos配置中心的使用说明

使用说明在官方文档上有详细记录,点击查看文档https://nacos.io/zh-cn/docs/v2/ecology/use-nacos-with-spring-cloud.html。

1,声明对配置中心的Maven依赖

要使用配置中心首先要添加依赖。

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

在谷粒商城这个项目中,因为所有服务都要使用Nacos配置中心,所以在common模块添加这个依赖

2,在 bootstrap.properties 中配置 Nacos server 的地址和应用名

在工程或者模块的resource目录下,bootstrap.properties问中声明Nacos服务器的地址和服务名称。

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=gulimall-coupon

3,在Nacos配置列表界面创建配置文件

在这里插入图片描述

点击创建配置后,会有如下页面。

在这里插入图片描述

  • ① Data ID相当于文件名,要包含服务名,比如gulimall-coupon.properties
  • ② 配置文件类型,支持多种,对于微服务来讲,一般是yaml或者properties
  • ③ 黑色框内是要填充的配置信息

Nacos Spring Cloud 中,Data Id 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}
  • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  • spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 propertiesyaml 类型。

三,测试

1,把配置信息放在工程里

我们先把信息放在工程的配置文件中,在coupon模块的配置文件application.properties中配置如下信息:

coupon.user.name=lcy
coupon.age=22

在这里插入图片描述

2,编写测试代码

在Controller中增加一个方法,使用配置文件中的配置信息。

	@Value("${coupon.user.name}")
    private String userName;
    @Value("${coupon.user.age}")
    private String userAge;

    @RequestMapping("test")
    public R test(){
        return R.ok().put("name", userName).put("age", userAge);
    }

注意上述代码,我们是通过注解@Value将配置文件中的配置注入到类变量中,然后在方法中引用。

3,测试

启动服务后,在浏览器中输入以下地址。

http://localhost:7000/coupon/coupon/test

输出如下,说明已经读取了配置文件中的信息。
在这里插入图片描述

4,把配置信息配置到配置中心

以优惠券服务为例进行配置。
在这里插入图片描述

点击配置文件列表右侧编辑按钮,进入编辑界面。

在这里插入图片描述

注意,为了弄清楚配置中心配置文件和本地配置文件的区别和联系,我们没有删除上一步本地的配置。

目前仅在配置中心配置了一项配置,这项配置在本地配置中也有,但值不一样,本地配置是coupon.user.name=lcy,配置中心是coupon.user.name=lcy2

重启服务后刷新浏览器,结果如下。

在这里插入图片描述
显然,name的值取自配置中心,而不是本地配置文件,说明配置中心的值会覆盖本地配置文件的值

错误记录

谷粒商城配置中心错误记录

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

适合初学者的嵌入式项目有哪些?

适合初学者的嵌入式项目有哪些? 嵌入式学习是一个实践性很强的领域&#xff0c;通过实际项目可以帮助你巩固理论知识并提升技能。以下是几个适合初学者练手的嵌入式项目&#xff0c;每个项目都涵盖了从硬件到软件的不同层面&#xff1a; 1.LED灯控制 详细描述&#xff1a;在…

Parallels Desktop 19 for Mac 让你的 Mac 变得无比强大

简单来说&#xff0c;Parallels Desktop 19 for Mac 可以让你在苹果 Mac 电脑 (包括 M1、M2 或 Intel) 的电脑上「同时运行」一个或多个 Windows 或 Linux 系统&#xff0c;并能随意在不同平台软件之间切换。它能让你的 Mac 变得无比强大&#xff0c;因为 PD 能让你直接在 macO…

centos下编译安装redis最新稳定版

一、目标 编译安装最新版的redis 二、安装步骤 1、redis官方下载页面 Downloads - Redis 2、下载最新版的redis源码包 注&#xff1a;此时的最新稳定版是 redis 7.2.5 wget https://download.redis.io/redis-stable.tar.gz 3、安装编译环境 yum install -y gcc gcc-c …

debian 12 Install

debian 前言 Debian是一个基于Linux内核的自由和开放源代码操作系统&#xff0c;由全球志愿者组成的Debian项目维护和开发。该项目始于1993年&#xff0c;由Ian Murdock发起&#xff0c;旨在创建一个完整的、基于Linux的自由软件操作系统。 debian download debian 百度网盘…

地理信息安全与隐私保护:守护你我位置的隐形盾牌

在数字时代&#xff0c;地理信息技术如地理信息系统&#xff08;GIS&#xff09;和全球定位系统&#xff08;GPS&#xff09;已成为日常生活不可或缺的一部分&#xff0c;它们为我们带来便利的同时&#xff0c;也悄然触及个人隐私的敏感地带。今天&#xff0c;我们就来聊聊地理…

ARMxy微电网控制新星:赋能智能电网监控

能源转型和智能电网建设高效、可靠的电力输配系统成为了行业关注的焦点。随着物联网、大数据、人工智能技术的融合应用&#xff0c;电网监控与变电站自动化系统亟需更为智能、灵活的解决方案来提升其性能与稳定性。正是在这样的背景下&#xff0c;ARM电力控制微电网主机BL340以…

前端预览图片的两种方式:转Base64预览或转本地blob的URL预览,并再重新转回去

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 预览图片 一般情况下&#xff0c;预览图片功能&#xff0c;是后端返回一个图片地址资源&#xff08;字符串&#xff09;给前端&#xff0c;如&#xff1a;ashuai.work/static…

PMP考试必须要报培训班,不能自学!

绝对不是危言耸听。有网友分享了可以自学不报培训班&#xff0c;只是比较幸运&#xff0c;没有赶上这个时期而已。你可以不相信我&#xff0c;但是官方发布的信息你还是要认真考虑。那一期有很多因为自学而没有顺利抢到考位的考生&#xff0c;白白浪费了好几个月的时间。 大家千…

Android adb启动任意app的几种方式

使用adb启动应用程序主要有两种方式&#xff1a;一种是已知应用程序的包名和主Activity&#xff0c;另一种是不知道应用程序的包名和主Activity。 已知应用程序的包名和主Activity 在这种情况下&#xff0c;我们可以通过输入特定的adb命令来启动应用程序。具体步骤如下&#x…

Swin Transformer重磅升级!开源新SOTA准确率高达99.92%,更省计算资源

今天我们来聊一个超强的算法模型&#xff0c;Swin Transformer。 Swin Transformer是一种创新的视觉模型&#xff0c;它通过层次化多尺度架构、移位窗口策略和局部自注意力机制等创新设计&#xff0c;成功解决了传统Transformer从NLP到CV任务时面临的问题&#xff0c;实现了高…

Java中的LinkedList(链表)(如果想知道Java中有关LinkedList的知识点,那么只看这一篇就足够了!)

前言&#xff1a;在Java编程语言中&#xff0c;Java集合框架提供了一组丰富的数据结构&#xff0c;以满足各种应用需求。其中&#xff0c;LinkedList作为一种常用的数据结构&#xff0c;具有独特的优势和广泛的应用场景。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内…

【全面介绍语言模型的原理,实战和评估】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 🥂语言模型的原理 🥂语言模型基于统计和机器学习的原理,目标…

LDR6282-显示器:从技术革新到视觉盛宴

显示器&#xff0c;作为我们日常工作和娱乐生活中不可或缺的一部分&#xff0c;承载着将虚拟世界呈现为现实图像的重要使命。它不仅是我们与电子设备交互的桥梁&#xff0c;更是我们感知信息、享受视觉盛宴的重要窗口。显示器在各个领域的应用也越来越广泛。在办公领域&#xf…

【Linux】进程间通信之System V共享内存

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

User parameters 用户参数与Web监控

目录 一. 自定义键介绍 二. 制作步骤 1. 添加无可变部分参数 2. 添加有可变参数 3. 使用用户参数监控php-fpm 服务的状态 三. Web页面导入应用监控 四. Web监控 主要功能和操作&#xff1a; 开启方式 官方预定义监控项文档https://www.zabbix.com/documentation/6…

聚合分销推广系统CPS和CPA聚合分销系统小程序搭建开发

目录 前言&#xff1a; 一、聚合cps和cpa是什么&#xff1f; 1.CPS&#xff08;Cost Per Sale&#xff09;&#xff0c; 2.CPA&#xff08;Cost Per Action&#xff09;&#xff0c; 二、聚合CPS与CPA推广系统的特色 三、实际应用场景示例 四、总结 前言&#xff1a; 聚合…

【前端】包管理器:npm、Yarn 和 pnpm 的全面比较

前端开发中的包管理器&#xff1a;npm、Yarn 和 pnpm 的全面比较 在现代前端开发中&#xff0c;包管理器是开发者必不可少的工具。它们不仅能帮我们管理项目的依赖&#xff0c;还能极大地提高开发效率。本文将详细介绍三种主流的前端包管理器&#xff1a;npm、Yarn 和 pnpm&am…

从 Icelake 到 Iceberg Rust

本文作者丁皓是Databend 研发工程师&#xff0c;也是开源项目 OpenDAL 作者&#xff0c;主要研究领域包括存储、自动化与开源。 太长不看 Icelake 已经停止更新&#xff0c;请改用 iceberg-rust。 Iceberg-rust 是一个由社区驱动的项目&#xff0c;所有 Icelake 的贡献者都已转…

【深度学习】图形模型基础(7):机器学习优化中的方差减少方法(1)

摘要 随机优化是机器学习中至关重要的组成部分&#xff0c;其核心是随机梯度下降算法&#xff08;SGD&#xff09;&#xff0c;这种方法自60多年前首次提出以来一直被广泛使用。近八年来&#xff0c;我们见证了一个激动人心的新进展&#xff1a;随机优化方法的方差降低技术。这…

3款自己电脑就可以运行AI LLM的项目

AnythingLLM、LocalGPT和PrivateGPT都是与大语言模型&#xff08;LLM&#xff09;相关的项目&#xff0c;它们允许用户在本地环境中与文档进行交互&#xff0c;但它们在实现方式和特点上存在一些差异。AnythingLLM使用Pinecone和ChromaDB来处理矢量嵌入&#xff0c;并使用OpenA…