Nacos-SpringBoot-配置中心

Nacos配置中心

前情回顾

上一章呢 了解并且学习了Nacos服务注册与发现  在一系列破防中走了出来
Nacos服务注册完成icon-default.png?t=N7T8https://blog.csdn.net/m0_68711597/article/details/139265244?spm=1001.2014.3001.5502

本以为接下来会一帆风顺 一马平川  没想刚出坑 又入坑  

Nacos的配置中心,主要是为了对集群进行统一的管理配置,对一些可能会发生的变动,统一的进行管理。当服务的配置需要变更时,传统的方法是先停止服务,然后去修改配置文件,最后重新启动服务。这种方法在服务数量较少时是可行的,但当服务达到成百上千时,停止服务所花费的代价太大。这时,Nacos的配置管理功能就显得尤为重要。
Nacos有一个配置管理中心,服务的配置是将配置管理中心的配置与部分本地配置结合,形成服务的完整配置。当服务配置中心的配置文件进行变动时,Nacos会对相应微服务发送通知,微服务在不用重启的情况下完成配置的更新。这种热更新方式大大提高了服务的可用性和可维护性。-------来自百度开发者中心

如何实现?

我在网上看了些教程 比如 某马程序员 等 还有官方文档   就开始了我的操作  以下为真实记录 ~

启动nacos

首先需要在nacos中

新建配置

dataid 就是你的配置文件名

yaml是文件格式  具体配置的内容按照需求去配置 这里为了做实验  将server配置为123456

 然后在idea的项目里

引入依赖

还有其它依赖没有的可以看我上一篇文章

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

新建依赖文件

bootstarp.yml

spring:
  application:
    name: nacos
  profiles:
    active: dev #开发环境
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        file-extension: yaml
        name: nacos-dev

为啥需要 这个文件呢  

这个文件他的执行时间在 application.yml之前 springboot启动的时候会先去读取这个文件

然后再去读取Application.yml 合并两个配置文件   这里用bootstarp.yml可以实现热更新

这里需要在nacos的配置里面指定配置文件名

bootstarp.yml这里的application应用名和 profies设置开发环境  和file-extension文件类型给好之后 

刚好对应你的配置文件名 也就是dataid   =>nacos-dev.yaml 就可以拉取nacos里本服务的默认配置   

如果你在nacos .config里面配置了name  那么就会拉取指定的的服务。

测试能否拉取配置

我这里写一个控制器 用来读取nacos的配置

这里用到了 @Value  以及@RefreshScope  来实现热更新  也就是实时更新配置  不用开关机重启

这样做就是为了避免服务重启  造成不便 。

当然你也可以使用注解@ConfigurationProperties 网上这种多一点

package org.example.nacos.controller;

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

/**
 * 
 * vx:JavaAdmin123
 */
@RefreshScope
@RestController
@RequestMapping("/data")
public class Contr {
    @Value(value = "${server:}")
    private  String SERVER;
    @GetMapping
    public  String getSERVER(){
        System.out.println("测试");
        System.out.println(this.SERVER);
        return this.SERVER;
    }
}

踩坑:

网上的教程说 nacos2.0以下的版本 是不用手动设置开启热更新的 我的版本是1.4.1 并且cloud依赖版本2021.1   按网上的教程 按道理 可以直接启动拉取实现热更新。

但是!! 当我执行程序后 报错了  说是服务名没找到

java.lang.IllegalArgumentException: Param ‘serviceName‘ is illegal, serviceName is blank

  

我寻思  哥们儿不是按照教程来的吗  怎么会这样呢   于是我先把bootstarp.yml清空  看看application.yml是否可以执行    结果是application.ym可以执行

那就是bootstarp.yml的问题     我看了半天我的内容和教程上一模一样  也没拼写错误

大学生再次梦碎微服务!真的要咆哮了! 明明和教程一模一样!它就是报错!

后来本人咆哮+多番尝试了一下  发现需要手动开启热更新 设置启动的环境变量

当然你也可以去使用依赖  我这样用的是环境变量   因为我下载依赖出错~~~

依赖:

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

 环境变量:

spring.cloud.bootstrap.enabled=true 

 启动

这里成功读取了配置文件   如果有幸帮助到您 还请关注我  我会持续更新!

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

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

相关文章

副业赚钱的路子有哪些?推荐15个靠谱副业和赚钱软件给你做

在这个工资永远追不上物价的时代&#xff0c;你是否也感到焦虑&#xff1f;是否想过在工作之余&#xff0c;开辟一条赚钱的副业之路&#xff1f;别急&#xff0c;今天就为你揭开副业赚钱的神秘面纱&#xff0c;带你一探究竟&#xff01; 一、宅富社任务&#xff1a;每日小任务&…

华为官网的自助申诉

代码&#xff1a;如下 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document</title> …

Python自动化办公2.0 即将发布

第一节课&#xff1a;数据整理与清洗 第二节课&#xff1a;数据筛选、过滤与排序 第三节课&#xff1a;高级数据处理技巧 第四节课&#xff1a;数据可视化与实践案例 第五节课&#xff1a;统计分析与报表 第六节&#xff1a;常见的Excel报表 与下方的课程形成知识体系&…

【教学类-60-01】彩色消划掉01(四个数字,X*Y宫格)

背景需求&#xff1a; &#x1f9e0;思维启蒙 - 小红书注意力训练小分享-彩色划消 训练孩子的视觉辨别能力、视觉稳定性、注意力分配额能力&#x1f440; 一起来试试吧&#xff5e; #分享学习方法 #注意力训练 #专注力训练#天津 #亲子时光 #孩子成长 #思维启蒙 #数学思维启蒙 …

天工大模型:中国AI搜索巨头如何一骑绝尘?

5月&#xff0c;全球大模型领域的竞争&#xff0c;或可用“你方唱罢我方登场”来形容。 谷歌、腾讯、阿里、字节跳动等业界巨擘纷纷亮出大招。有的凭借技术底蕴实现全面升级&#xff0c;有的慷慨将大模型开源免费&#xff0c;更有甚者通过价格战掀起狂风巨浪&#xff0c;整个市…

4月啤酒品类线上销售数据分析

近期&#xff0c;中国啤酒行业正处于一个重要的转型期。首先&#xff0c;消费者对高品质啤酒的需求不断增加&#xff0c;这推动了行业向高端化、场景化和社交化的方向发展。精酿啤酒作为这一趋势的代表&#xff0c;其发展势头强劲&#xff0c;不仅满足了消费者对品质化、个性化…

解决get请求入参@NotNull验证不生效问题

get请求NotNull验证不生效 在这里插入图片描述 解决办法 在该方法的controller类上加Validated 解决get请求入参NotNull验证不生效问题

CCF-GESP 2024 四级T1相似字符串

题目描述 对于两个字符串A和B&#xff0c;如果A可以通过删除一个字符&#xff0c;或插入一个字符&#xff0c;或修改一个字符变成B&#xff0c;那么我们说A和B是相似的。 比如 apple 可以通过插入一个字符变成 applee &#xff0c;可以通过删除一个字符变成 appe &#…

基于百度智能体平台快速搭建Java学习助手

文章目录 前言什么是文新智能体平台&#xff1f;Java学习助手智能体搭建智能体效果智能体入口文新智能体体验感受 前言 一个Java初学者在学习Java时可能不知道从哪下手&#xff0c;一个工作了3年的Java开发遇到瓶颈期不知如何提升自己&#xff0c;此时&#xff0c;如果有一个老…

多环境和前后多环境实战

文章目录 一.多环境1.1 什么是多环境1.2 多环境分类1.2.1 本地环境&#xff08;自己的电脑&#xff09;1.2.2 开发环境&#xff08;远程开发&#xff09;1.2.3 测试环境1.2.4 预发布环境1.2.5 正式环境1.2.6 沙箱环境&#xff08;实验环境&#xff09; 1.3 如何实现1.3.1 抽象配…

【算法】模拟算法——替换所有的问号(easy)

题解&#xff1a;替换所有的问好(模拟算法) 目录 1.题目2.题解3.参考代码4.总结 1.题目 题目链接&#xff1a;LINK 2.题解 纯模拟。从前往后遍历整个字符串&#xff0c;找到问号之后&#xff0c;就⽤ a ~ z 的每⼀个字符去尝试替换即可。 3.参考代码 class Solution { pu…

Whisper-AT:抗噪语音识别模型(Whisper)实现通用音频事件标记(Audio Tagger)

本文介绍一个统一音频标记&#xff08;Audio Tagger&#xff09;和语音识别&#xff08;ASR&#xff09;的模型&#xff1a;Whisper-AT&#xff0c;通过冻结Whisper的主干&#xff0c;并在其之上训练一个轻量级的音频标记模型。Whisper-AT在额外计算成本不到1%的情况下&#xf…

构建树结构的几种方式

表结构 CREATE TABLE sys_dept (dept_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ID,pid bigint(20) DEFAULT NULL COMMENT 上级部门,sub_count int(5) DEFAULT 0 COMMENT 子部门数目,name varchar(255) NOT NULL COMMENT 名称,dept_sort int(5) DEFAULT 999 COMMENT 排…

Sapphire开发日志(三)

任务描述 本周实现并封装了模型的运行&#xff0c;需要在前端安装依赖的库&#xff0c;编写对应的处理函数。同时需要能够展示出抠图效果。 依赖与环境配置 尝试在前端接入并运行onnx。 在前端运行onnx依赖于onnxruntime-web这个包&#xff0c;这个包可以在浏览器进行模型推…

day25-XML

1.xml 1.1概述【理解】 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年&#xff0c;又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者&#xff1a; Tim Berners-Lee (蒂姆伯纳斯李)。 是Web技术领域最具权威和影响力的国际中立性技术标准机构。 到目前为…

前端从零到一开发vscode插件并发布到插件市场

前端从零到一开发vscode插件并发布到插件市场 背景目标成果展示一条龙实现过程安装插件脚手架和工具创建项目运行调试打包第一次打包前的必要操作 发布第一次发布前账号准备注册Azure DevOps发布账号-获取token注册vscode开发者账号终端登录vsce 发布方式2-手动上传插件 进阶开…

SQL Server 拆分逗号分隔的字段为多条数据

文章目录 引言I 拆分逗号分隔的字段为多条数据1.1 使用`CROSS APPLY `拆分逗号分隔的字段为多条数据1.2 利用CHARINDEX 实现把逗号隔开的字符串拆分成行II 多列转行,逗号分隔(字段拼接/字段分割)1.1 多列转行,逗号分隔2.2 int字段类型的多行数据合并(字段拼接)2.3 SQLserver查询…

揭秘数字货币:比特币背后的技术逻辑

随着科技的飞速发展,数字货币作为一种新兴的经济形态,已经逐渐走入我们的视野。其中,比特币无疑是这一领域的佼佼者。那么,比特币背后的技术逻辑究竟是什么呢?本文将为您揭开这一神秘面纱。 一、区块链技术:比特币的基石 比特币的核心技术就是区块链(Blockchain)。区块…

K210视觉识别模块学习笔记1:第一个串口程序_程序烧录与开机启动

今日开始学习K210视觉识别模块:简单的认识与串口程序 既然K210作为一个视觉识别外设模块来使用&#xff0c;我认为第一个程序 就没必要学点灯之类的了&#xff0c;直接学习串口如何配置开始为妥&#xff0c;毕竟后面都要用到..... 在研究过程中也发现K210程序的烧录与启动也与…

【进阶篇-Day1:JAVA中static关键字、继承、final关键字的介绍】

目录 1、static关键字1.1 static关键字的介绍1.2 static关键字修饰成员的特点&#xff08;1&#xff09;static成员变量&#xff1a;&#xff08;2&#xff09;static成员方法&#xff1a; 1.3 重新认识main方法1.4 static关键字修饰成员的内存图解释 2、继承2.1 继承的介绍2.2…