Nacos 配置中心实例分析实践

文章目录

  • Nacos 配置中心实例
    • 需求分析/图解
    • 在Nacos Server 加入配置
    • 创建Nacos 配置客户端模块e-commerce-nacos-config-client5000
      • 创建Module
      • 修改pom.xml
      • 创建application.yml
      • 创建bootstrap.yml
      • 主启动类
      • 业务类
      • 测试
      • 注意事项和细节

Nacos 配置中心实例

需求分析/图解

在这里插入图片描述

在Nacos Server 加入配置

  1. 进入到Nacos Server
  2. 加入配置, 特别提醒: 文件后缀.yaml 别忘了.

image-20230903210602426

Data ID: e-commerce-nacos-config-client-dev.yaml

image-20230903210805091

image-20230903210826953

创建Nacos 配置客户端模块e-commerce-nacos-config-client5000

创建Module

先创建e-commerce-nacos-config-client5000 模块

修改pom.xml

  1. 修改pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>e-commerce-center</artifactId><groupId>com.my.springcloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>e-commerce-nacos-config-client5000</artifactId><!--使用版本仲裁--><!--引入相关的依赖: 引入当前需要依赖,后面如果有其它需要,再灵活调整--><dependencies><!--加入nacos-config stater  即场景启动器--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--引入alibaba-nacos--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--引入web-starter--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--引入e_commerce_center-common-api--><dependency><groupId>com.my.springcloud</groupId><artifactId>e_commerce_center-common-api</artifactId><version>${project.version}</version></dependency></dependencies>
</project>

创建application.yml

  1. 创建application.yml
spring:profiles:active: dev #指定环境,常见的环境有 dev开发/test测试/prod生产

创建bootstrap.yml

  1. 创建bootstrap.yml
server:port: 20000 #端口spring:application:#这里的name需要参考nacos 配置中心的Data Idname: e-commerce-nacos-config-client#配置nacoscloud:nacos:discovery:server-addr: localhost:8848 #服务注册中心地址config:server-addr: localhost:8848 #配置中心地址file-extension: yaml #指定yaml格式的配置group: search #指定search组,默认是DEFAULT_GROUPnamespace: ec3e8181-f157-4e0c-b3e2-080157f606ce  #指定对应namespace id[百度]
#说明
#1. nacos 配置客户端/当前的微服务模块, 会根据配置,找到配置中心的数据(配置文件)
#2. config.server-addr: localhost:8848 可以找到配置中心
#3. spring.application.name 对应是DataId e-commerce-nacos-config
#4. 在application.yml: 配置 spring.profiles.active dev
#5. spring.cloud.nacos.config.file-extension 配置文件的扩展名 .yaml
#6. 小结: 根据配置 就是 到 localhost:8848 下的 e-commerce-nacos-config-dev.yaml
#   获取配置信息/数据
#7. 规则就是: ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
#   来定位配置中心的 Data ID

主启动类

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigClientApplication5000 {public static void main(String[] args) {SpringApplication.run(NacosConfigClientApplication5000.class, args);}
}

业务类

  1. 创建NacosConfigClientController
@RestController
@Slf4j
@RefreshScope //spring cloud原生注解,实现了配置数据的自动刷新
public class NacosConfigClientController {/***  解读* 1. client 会拉取nacos server 的 e-commerce-nacos-config-client-dev.yaml* config:*     ip: "122.22.22.22"*     name: "hhh"* 2. @Value("${config.ip}") 会将 config.ip 赋给  configIp* 3. 这里${config.ip} 不能乱写,要有依据*/@Value("${config.ip}")private String configIp;@Value("${config.name}")private String configName;@GetMapping("/nacos/config/ip")public String getConfigIp() {return configIp;}@GetMapping("/nacos/config/name")public String getConfigName() {return configName;}
}

测试

​ 启动Nacos Server
​ 启动e-commerce-nacos-config-client5000
​ 浏览器: http://localhost:5000/nacos/config/ip

image-20230903215043242

注意事项和细节

  1. src\main\java\com\my\springcloud\controller\NacosConfigClientController.java 的@Value(“${config.ip}”), 是import org.springframework.beans.factory.annotation.Value;而不是lombok 包下的.
  2. 配置文件application.yml 和bootstrap.yml 结合会得到配置文件/资源的地址.
  3. 参考文档: https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

image-20230903215159682

  1. 注意在Nacos Server 的配置文件的后缀是.yaml , 而不是.yml
  2. 在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动, 也就是说如果项目不能正确的获取到Nacos Server 的配置数据,项目是启动不了的.[演示]
  3. springboot 中配置文件的加载是存在优先级顺序的, bootstrap.yml 优先级高于application.yml
  4. @RefreshScope 是springcloud 原生注解,实现配置信息自动刷新, 如果在NacosServer 修改了配置数据,Client 端就会得到最新配置

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

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

相关文章

口才训练:如何用声音和语言展现自我魅力

口才训练&#xff1a;如何用声音和语言展现自我魅力 这里有一篇1270字左右的文章&#xff0c;主要介绍如何用声音和语言来展现自我魅力&#xff1a; 口才训练是提升个人魅力的重要途径之一。魅力不仅取决于外表&#xff0c;更重要的是声音和语言的运用。良好的语言表达能力可以…

LeetCode406:根据身高重建队列

题目描述 假设有打乱顺序的一群人站成一个队列&#xff0c;数组 people 表示队列中一些人的属性&#xff08;不一定按顺序&#xff09;。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &#xff0c;前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返回输入数…

C语言 联合和枚举

目录 1. 联合体1.1 联合体类型的声明1.2 联合体变量的创建1.3 联合体的特点1.4 联合体在内存中的存储1.5 联合体使用举例 2. 枚举类型2.1 枚举类型的声明2.2 枚举变量的创建和初始化2.3 枚举类型的大小2.4 枚举类型的优点 正文开始 上次我们通过《C语言 结构体详解》学习了结构…

华为OD机试 - 字符串消除 - 栈Stack(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

论文辅助笔记:Tempo 之 model.py

0 导入库 import math from dataclasses import dataclass, asdictimport torch import torch.nn as nnfrom src.modules.transformer import Block from src.modules.prompt import Prompt from src.modules.utils import (FlattenHead,PoolingHead,RevIN, )1TEMPOConfig 1.…

【模型参数优化】随机搜索对随机森林分类模型进行参数寻优【附python实现代码】

写在前面&#xff1a; 首先感谢兄弟们的订阅&#xff0c;让我有创作的动力&#xff0c;在创作过程我会尽最大能力&#xff0c;保证作品的质量&#xff0c;如果有问题&#xff0c;可以私信我&#xff0c;让我们携手共进&#xff0c;共创辉煌。 路虽远&#xff0c;行则将至&#…

苍穹外卖项目

Day01 收获 补习git Git学习之路-CSDN博客 nginx 作用&#xff1a;反向代理和负载均衡 swagger Swagger 与 Yapi Swagger&#xff1a; 可以自动的帮助开发人员生成接口文档&#xff0c;并对接口进行测试。 项目接口文档网址&#xff1a; ​​​​​​​http://localhost:808…

上位机图像处理和嵌入式模块部署(树莓派4b部署java环境)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 通常我们都会认为java是部署在pc服务器上面的&#xff0c;或者是用java开发android应用程序。其实不然&#xff0c;java也可以部署在嵌入式开发板子…

这是一个简单的照明材料网站,后续还会更新

1、首页效果图 代码 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>爱德照明网站首页</title><style>/*外部样式*/charset "utf-8";*{margin: 0;padding: 0;box-sizing: border-box;}a{text-dec…

SVM直观理解

https://tangshusen.me/2018/10/27/SVM/ https://www.bilibili.com/video/BV16T4y1y7qj/?spm_id_from333.337.search-card.all.click&vd_source8272bd48fee17396a4a1746c256ab0ae SVM是什么? 先来看看维基百科上对SVM的定义: 支持向量机&#xff08;英语&#xff1a;su…

JVM笔记1--Java内存区域

1、运行时数据区域 从上图可以看出来&#xff0c;Java虚拟机运行时数据区域整体上可以分成5大块&#xff1a; 1.1、程序计数器 程序计数器是一块较小的内存空间。它可以看做当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里&#xff0c;字节码解释器工作时就是…

工厂流水线生产视频素材哪里有?工厂固定机位视频素材从哪找?

在当今这个视觉内容至关重要的数字时代&#xff0c;具备高质量视频素材的资源库是制胜关键。优质视频素材不仅能够显著提升品牌的视觉吸引力&#xff0c;还能帮助你在社交媒体上获得更多的关注和互动。下面介绍的视频素材网站&#xff0c;每一个都能为你的视频项目提供必要的视…

【Python】机器学习之Sklearn基础教程大纲

机器学习之Sklearn基础教程大纲 1. 引言 机器学习简介Scikit-learn&#xff08;Sklearn&#xff09;库介绍安装和配置Sklearn 2. 数据预处理 2.1 数据加载与查看 - 加载CSV、Excel等格式的数据- 查看数据的基本信息&#xff08;如形状、数据类型等&#xff09;2.2 数据清洗…

深入浅出 BERT

Transformer 用于学习句子中的长距离依赖关系&#xff0c;同时执行序列到序列的建模。 它通过解决可变长度输入、并行化、梯度消失或爆炸、数据规模巨大等问题&#xff0c;比其他模型表现更好。使用的注意力机制是神经架构的一部分&#xff0c;使其能够动态突出显示输入数据的…

Git系列:如何为不同的Git仓库设置不同的配置项?

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

威尔科克森秩和检验 (Wilcoxon rank-sum test)-- 代码实现

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

阿里低代码引擎学习记录

官网 一、关于设计器 1、从设计器入手进行低代码开发 设计器就是我们用拖拉拽的方法&#xff0c;配合少量代码进行页面或者应用开发的在线工具。 阿里官方提供了以下八个不同类型的设计器Demo&#xff1a; 综合场景Demo&#xff08;各项能力相对完整&#xff0c;使用Fusion…

深度学习之基于Unet肺部CT图像分割项目

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 肺部CT图像分割在医学诊断中占据重要地位&#xff0c;它有助于医生快速、准确地识别和分析肺部病变。…

【数据库原理及应用】期末复习汇总高校期末真题试卷

试卷 一、填空题 1.________是位于用户与操作系统之间的一层数据管理软件。 2.数据库系统的三级模式结构是指________、________、________。 3.数据库系统的三种数据模型是________ 、________、________。 4.若关系中的某一属性组的值能唯一地标识一个元组&#xff0c;则…

2024-第四批C++ 第二轮选拔赛(代码加解析)

第二轮比赛结束了&#xff0c;答案又出来了&#xff0c;充实的一天又过去了...... 一、摘苹果 题目描述 小白同学种植了一颗苹果树&#xff0c;经过他悉心的照料&#xff0c;苹果树终于结果了&#xff0c;结出了很多苹果。 现在树上有 n 个苹果&#xff0c;因为体力有限&…