共同学习|Spring Cloud Alibaba一一Nacos配置

news2025/4/8 0:34:07

Nacos配置中心

在服务或者应用运行过程中,提供动态配置或者元数据以及配置管理的服务提供者。

从Nacos中拉去配置文件

pom文件

2、bootstrap.yml

修改application.yml为bootstrap.yml

spring:
    cloud:  
       nacos:
           config:
               server-addr: localhost:8848 #nacos服务地址
               file-extension: yaml #拉取文件的后缀
     applicantion:
         name: server-config  #服务名称
     profiles:
         active: dev  #开发环境

从nacos拉取配置文件规则:

   spring.application.name - {profile}.${file-extension:properties}

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

3、Controller读取配置文件内容

@RestController
@RequestMapping("/config")
public class ConfigController ( 
       @Value("$(config.test}")
       private string test; // 这个属性从nacos中拉取
       @RequestMapping("/hello")
       public string hello() {
            return "config/hel1o -->+ test;
       }
}

4、主启动类

@SpringBootApplication(scanBasePackages = "com.qf")
@EnableDiscoveryClient
public class ServerConfigApplication {
         public static void main(string[] args) { 
              SpringApplication.run(ServerConfigApplication.class, args);
         }
}

5、在Nacos中添加配置文件

Nacos配置动态刷新

在nacos配置中心修改配置文件内容可以实现实时刷新

@RestController
@RequestMapping("/config")
@Refreshscope // 修改配置文件后刷新就能看到
public class ConfigController (
     @value("$(config.test)")
      private String test;
     @RequestMapping("/hello")
         public string hello() {
           return "config/hello -->" + test;
      }
}

Nacos配置中心其它参数

1、DataId

在Nacos Spring Cloud中,dataId的完整格式如下:

${prefile}-${spring.profile.active}.${file-extension}

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

2.Group

   同一项目,不同模块需要隔离,在Nacos上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用DEFAULT_GROUP

spring:
  cloud:
     nacos:
         config:
             server-addr: localhost:8848
             file-extension: yaml
             group: INFO_GROUP # 设置读取INFO GROUP组的配器文件
   application:
       name: server-config
   profiles:
       active: dev

3、Namespace

     用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的Group或DataID的配置。Namespace的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。默认是有一个叫public的保留空间,不支持删除,比如开发、测试、生产环境可以创建三个namespace。

spring:
   cloud:
      nacos:
         config:
             server-addr: localhost:8848
             file-extension: yaml
             group: INFO GROUP # 组名
             namespace: 059b8812-2a6e-4633-a19f-3165a8472b79 # namespace
   application:
       name: server-config
   profiles:
      active: dev

总的来说,namespace是可以用于区分部署环境的,GroupDataID逻辑上区分连个目标对象。

Nacos持久化

Nacos支持三种部署式

        Nacos默认使用嵌入式数据库derby实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储存在一致性的问题。为了解决这个问题,Nacos采用集中式存储的方式来支持集群化部署,目前只支持mysql的存储。

1、创建nacos_config 数据库

在自己电脑上创建一个nacos_config数据库,运行nacos-mysql.sql中的脚本

2、修改nacos配置连接MYSQL数据库

spring.datasource.platform=mysg1
db .num=1
db.url.8=jdbc:mysql:/locahost:335/nacos Confip?characterIncoding-utF8camnetTimeut-180&socketTineout-300B&autoRecamnect-true
db .user=root
db .password=root

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

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

相关文章

node14下运行项目报错:regeneratorRuntime is not defined

regeneratorRuntime is not defined,这是由于配置babel出错问题,由于使用了es7语法如async/await而当前babel版本过低 解决: npm install -D babel-plugin-transform-runtime babel-runtime 安装完成后在.babelrc文件下配置: &qu…

python56-Python的断言

断言语句和if分支有点类似它用于对一个bool表达式进行断言,如果该bool表达式为True,该程序可以继续向下执行;否则程序会引发AssertionError错误。 # !/usr/bin/env python# -*- coding: utf-8 -*-# Time : 2024/01# Author : Laopiage input("请输入你的年龄&#xff1a…

QT文件IO

七、文件IO QFileDialog文件对话框 与QMessageBox一样,QFileDialog也继承了QDialog类,直接使用静态成员函数弹窗,弹窗的结果(选择的文件路径)通过函数返回值返回。 // 获取一个打开或保存的文件路径 // 参数1&#xff…

Git+py+ipynb Usage

0.default config ssh-keygen -t rsa #之后一路回车,当前目录.ssh/下产生公私钥 cat ~/.ssh/id_rsa.pub #复制公钥到账号 git config --global user.email account_email git config --global user.name account_namebug of ipynb TqdmWarning: IProgress not found. Please …

【JavaEE】_HttpServlet类

目录 1. init方法 2. destory方法 3. service方法 4. servlet生命周期 前文已经提及到:servlet是tomcat提供的,用于操作HTTP协议的一组API,可以将这组API理解为HTTP服务器的框架; 编写一个servlet程序,往往都要继…

记一次pulsar数据丢失排查

记一次pulsar数据丢失排查 背景 生产者往pulsar写消息时会有递增的序列号字段,消费端在消费时,会出现序列号断层。当下无法确定是生产端、mq、消费端哪个地方丢失了数据,所以先从生产端进行排查。 生产端的消息发送是通过sendAsync的异步方…

基于插件实现RabbitMQ“延时队列“

1.官网下载 在添加链接描述下载rabbitmq_delayed_message_exchange 插件,本文以v3.10.0为例 1.1.上传安装包 scp /Users/hong/资料/rabbitmq_delayed_message_exchange-3.10.0.ez root10.211.55.4:/usr/local/software1.2.将文件移入RabbitMQ的安装目录下的plugins目录 m…

EasyRecovery2024个人免费版本电脑手机数据恢复软件下载

EasyRecovery是一款功能强大的数据恢复软件,能够帮助用户恢复丢失、删除、格式化或损坏的数据。无论是由于误操作、病毒攻击、硬盘故障还是其他原因导致的数据丢失,EasyRecovery都能提供有效的解决方案。 该软件支持从各种存储介质恢复数据,…

linux-并发通信

一.linux-tcp通信框架 1.基础框架 1.1 tcp 服务器框架 1.套接字 #include <sys/socket.h> int socket(int domain, int type, int protocol);
 返回的文件描述符可以指向当前的socket&#xff0c;后续通过对文件描述符的访问就可以配置这个socket 成功时返回文件…

云原生应用测试:挑战与方法

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

Linux进程 ----- 信号处理

前言 从信号产生到信号保存&#xff0c;中间经历了很多&#xff0c;当操作系统准备对信号进行处理时&#xff0c;还需要判断时机是否 “合适”&#xff0c;在绝大多数情况下&#xff0c;只有在 “合适” 的时机才能处理信号&#xff0c;即调用信号的执行动作。 一、信号的处理…

万界星空科技MES系统,实现数字化智能工厂

万界星空科技帮助制造型企业解决生产过程中遇到的生产过程不透明&#xff0c;防错成本高&#xff0c;追溯困难&#xff0c;品质不可控&#xff0c;人工效率低下&#xff0c;库存积压&#xff0c;交期延误等问题&#xff0c;从而达到“降本增效”的目标。打通各个信息孤岛&#…

Python性能测试框架Locust实战教程

01、认识Locust Locust是一个比较容易上手的分布式用户负载测试工具。它旨在对网站&#xff08;或其他系统&#xff09;进行负载测试&#xff0c;并确定系统可以处理多少个并发用户&#xff0c;Locust 在英文中是 蝗虫 的意思&#xff1a;作者的想法是在测试期间&#xff0c;放…

推荐一个 Obsidian 的 ChatGPT 插件

源码地址&#xff1a;https://github.com/nhaouari/obsidian-textgenerator-plugin Text Generator 是目前我使用过的最好的 Obsidian 中的 ChatGPT 功能插件。它旨在智能生成内容&#xff0c;以便轻松记笔记。它不仅可以在 Obsidian 中直接使用 ChatGPT&#xff0c;还提供了优…

Vue+SpringBoot打造衣物搭配系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 衣物档案模块2.2 衣物搭配模块2.3 衣物收藏模块 三、系统设计3.1 用例设计3.2 E-R图设计3.3 数据库设计3.3.1 衣物档案表3.3.2 衣物搭配表3.3.3 衣物收藏表 四、系统实现4.1 登录页4.2 衣物档案模块4.3 衣物搭配模块4.4…

力扣用例题:2的幂

此题的解题方法在于根据用例调整代码 bool isPowerOfTwo(int n) {if(n1){return true;}if(n<0){return false;}while(n>2){if(n%21){return false;}nn/2; }if(n1){return false;}return true;}

RDMA内核态函数ib_post_send()源码分析

最近调用linux内核下RDMA的Verb API ib_post_send()出现了问题&#xff0c;因此从源码分析一下这个函数的调用过程。 我使用的内核版本为5.15.0-94 这是函数ib_post_send的头文件定义&#xff0c;这个函数的意义是向发送队列提交发送请求&#xff0c;他会调用qp对应设备的post_…

C# EF Core迁移数据库

现象&#xff1a; 在CodeFirst时&#xff0c;先写字段与表&#xff0c;创建数据库后&#xff0c;再添加内容 但字段与表会变更&#xff0c;比如改名删除增加等 需求&#xff1a; 当表字段变更时&#xff0c;同时变更数据库&#xff0c;执行数据库迁移 核心命令 Add-Migrat…

一种基于道路分类特性的超快速车道检测算法

摘要&#xff1a; 本文介绍了一种新颖、简单但有效的车道检测公式。 车道检测是自动驾驶和高级驾驶员辅助系统 (ADAS) 的基本组成部分&#xff0c;在实际高阶驾驶辅助应用中&#xff0c;考虑车道保持、转向、限速等相关的控制问题&#xff0c;这种方式通常是通过受限的车辆计算…

java——多线程基础

目录 线程的概述多线程的创建方式一&#xff1a;继承Thread类方式二&#xff1a;实现Runnable接口方式三&#xff1a;利用Callable接口、FutureTask类来实现。Thread常用的方法 线程安全问题线程安全问题概述线程安全问题案例取钱案例描述模拟代码如下&#xff1a;执行结果 线程…