当前位置: 首页 > news >正文

Spring Cloud集成nacos配置中心

1.添加Nacos Config依赖

打开nacos-config-demo的pom.xml文件并添加以下两个依赖项

项目的配置文件中通常包括数据库连接配置项、日志输出配置项、Redis连接配置项、服务注册配置项等内容,如spring-cloud-alibaba-nacos-config-base-demo项目中就包含数据库连接配置项和服务注册配置项。如果把这些配置项存放在配置中心,为了保证项目能够正常启动,就必须在数据源实例配置、服务注册流程之前读到所有配置项,因为类似数据源、日志工厂等实例的初始化和服务注册流程都是在项目启动过程中进行的。

基于这个原因,在服务的启动阶段就需要将连接Nacos配置中心的配置项加载优先级设置为最高。在Spring Boot规范中,bootstrap配置文件(bootstrap.yml或bootstrap.properties)用来引导程序时执行,应用于更加早期的配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的,其加载优先级高于application配置文件(application.yml或application.properties)。将连接Nacos配置中心的配置项放到bootstrap文件中,能够确保在启动阶段优先读取Nacos配置中心里存储的配置项。添加完依赖,接下来就要配置连接Nacos配置中心的参数了。

2.代码中配置Nacos Config连接参数

先在的resource目录下创建bootstrap.properties配置文件。然后在bootstrap.properties文件中添加一些连接Nacos配置中心的参数,代码及参数释义如下:

3.添加配置文件到Nacos配置中心

打开浏览器并进入Nacos控制台页面,如果没有配置自定义命名空间,就可以单击左侧导航栏中的“命名空间”按钮,打开“新建命名空间”对话框

在“新建命名空间”对话框中主要设置命名空间ID、命名空间名和描述。其中,命名空间ID就是连接配置中心的spring.cloud.nacos.discovery.namespace配置项和连接服务注册中心的spring.cloud.nacos.config.namespace配置项所要填写的值,笔者将其设置为dev。如果不设置,则会自动生成一个长度为36个字符的字符串。

单击左侧导航栏中的“配置列表”按钮,再切换到“开发环境”命名空间(dev)

单击配置管理页面右侧的“+”按钮,可以新建一项配置。在这里可以把原来在application.properties文件中的配置项存储到Nacos配置中心。

“新建配置”页面包含7个选项:Data ID、Group、标签、归属应用、描述、配置格式和配置内容,重要的选项释义如下。

(1)Data ID:配置的唯一标识,必填项。

(2)Group:指定配置文件的分组,这里设置默认分组DEFAULT_GROUP即可,必填项。

(3)描述:说明配置文件的用途,可不填。

(4)配置格式:指定“配置内容”的类型(文件后缀名),必填项。

(5)配置内容:程序运行所需的配置项列表,必填项。在“新建配置”页面中,笔者指定了Data ID为newbee-cloud-config-service-dev.properties、Group为自定义分组NEWBEE_CLOUD_DEV_GROUP、配置格式为Properties。在“配置内容”文本框中,笔者将端口号、注册中心连接配置项和数据库连接配置项添加了进去。

4.Data ID详解

Data ID在Nacos配置中心里是配置项的唯一标识符,用于标识一个配置项信息,并在客户端获取配置信息时使用。组成Data ID的完整参数如下:

其中,${prefix}默认为应用名称,即spring.application.name配置项的值;${spring.profiles.active}是当前选择的环境;${file-extension}是配置内容的数据格式,即配置文件的后缀名。当前项目的bootstrap.properties文件中已经对上述三个配置项做了配置:

因此,在拉取配置中心的配置时所读取的Data ID就是newbee-cloud-config-service-dev.properties,这也是在“新建配置”页面中笔者将Data ID指定为newbee-cloud-config-service-dev.properties的原因,并不是随意输入的。如果在Data ID中输入了其他字符串,则程序无法通过配置中心拉取正确的配置,启动阶段会直接报错。

如果spring.profiles.active配置项并未指定,则对应的连接符“-”也没了,Data ID的组成参数会变成${prefix}.${file-extension}。比如,本节中的演示代码,如果不指定spring.profiles.active配置项,则Data ID就是newbee-cloud-config-service-dev.properties。

另外,若不想使用应用名称作为prefix,可以使用spring.cloud.nacos.config.prefix进行自定义。比如,本节中的演示代码如果增加了一个配置项:

那么Data ID就是config-service-dev.properties。如果在Nacos配置中心没有新建config-service-dev.properties,则程序在启动时无法拉取配置信息,会直接报错。

相关文章:

Spring Cloud集成nacos配置中心

1.添加Nacos Config依赖 打开nacos-config-demo的pom.xml文件并添加以下两个依赖项 项目的配置文件中通常包括数据库连接配置项、日志输出配置项、Redis连接配置项、服务注册配置项等内容,如spring-cloud-alibaba-nacos-config-base-demo项目中就包含数据库连接配置…...

【AI视频教程】只需5步,AI作出鸡你太美视频

1.视频效果 2.准备工作 制作视频效果,需要准备下面3个条件: 准备stable diffusion的环境剪辑一段【鸡你太美】原版视频stable diffusion安装sd-webui-IS-NET-pro插件 2.1部署stable diffusion环境 这里还是建议大家用云平台部署stable diffusion&am…...

C# OpenCvSharp DNN FreeYOLO 密集行人检测

目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN FreeYOLO 密集行人检测 效果 模型信息 Inputs ------------------------- name:input tensor:Float[1, 3, 192, 320] --------------------------------------------------------------- …...

一次HW红初面试

一、描述外网打点的流程? 靶标确认、信息收集、漏洞探测、漏洞利用、权限获取。最终的目的是获取靶标的系统权限/关键数据。 在这个过程中,信息收集最为重要。掌握靶标情报越多,后续就会有更多的攻击方式去打点。比如:钓鱼邮件、…...

网络攻防中nginx安全配置,让木马上传后不能执行、让木马执行后看不到非网站目录文件、命令执行后权限不能过高

网络攻防中nginx安全配置,让木马上传后不能执行、让木马执行后看不到非网站目录文件、命令执行后权限不能过高。 0x01 Nginx介绍 nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。nginx一般是把请求发…...

ctfshow web入门 php特性 web146-web150

1.web146 :被过滤了,三元运算符用不了,还可以用位运算符,逻辑运算符,等,逻辑运算符要注意或运算符的短路性 eval(return 1|phpinfo()|1) eval(return 1phpinfo()|1) payload: v11&v20&v3(~%8C%86%8C%8B%9A%92…...

Linux:kubernetes(k8s)prestop事件的使用(10)

他的作用是在结束pod容器之后进行的操作 apiVersion: v1 # api文档版本 kind: Pod # 资源对象类型 metadata: # pod相关的元数据,用于描述pod的数据name: nginx-po # pod名称labels: # pod的标签type: app #这个是随便写的 自定义的标签version: 1.0.0 #这个…...

vue2【详解】生命周期(含父子组件的生命周期顺序)

1——beforeCreate:在内存中创建出vue实例,数据观测 (data observer) 和 event/watcher 事件配置还没调用(data 和 methods 属性还没初始化) 【执行数据观测 (data observer) 和 event/watcher 事件配置】 2——created&#xf…...

C++基础语法和概念

基本语法和数据类型 C 是一种高性能的编程语言,允许程序员对内存管理进行精细控制。了解 C 的基本语法和数据类型是学习这门语言的第一步。以下是一些基础概念的详细介绍: 基本语法 程序结构 一个基础的 C 程序通常包括一个或多个头文件引用、一个 m…...

Vue.js+SpringBoot开发海南旅游景点推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…...

mysql笔记:11. 性能优化

文章目录 概览查询速度优化1. 分析查询语句1.1 EXPLAIN1.2 DESCRIBE 2. 使用索引优化查询3. 优化子查询 数据库结构优化1. 分解表2. 建立中间表3. 增加冗余字段4. 优化插入速度4.1. MyISAM引擎表4.2. InnoDB引擎表 5. 分析表、检查表和优化表5.1. 分析表5.2. 检查表5.3. 优化表…...

基于Docker搭建Maven私服仓库(Linux)详细教程

文章目录 1. 下载镜像并启动容器2. 配置Nexus3. 配置本地Maven仓库 1. 下载镜像并启动容器 下载Nexus3镜像 docker pull sonatype/nexus3查看Nexus3镜像是否下载成功 docker images创建Nexus3的挂载文件夹 mkdir /usr/local/nexus-data && chown -R 200 /usr/local…...

IPSEC VPPN 实验

背景:FW1和FW2为双机热备 要求:在FW5和FW3之间建立一条IPSEC通道,保证10.0.2.0/24网段可以正常访问到192.168.1.0/24IPSEC VPPN实验配置 fw2配置 加密数据流 新建对应IKE...

基于单片机的视觉导航小车设计

目 录 摘 要 I Abstract II 引 言 1 1 总体方案设计 3 1.1 方案论证 3 1.2 项目总体设计 3 2 项目硬件设计 4 2.1 主控模块设计 4 2.1.1单片机选型 4 2.1.2 STM32F103RCT6芯片 4 2.2单片机最小系统电路 5 2.3电机驱动模块设计 7 2.4红外模块设计 8 2.5红外遥控模块设计 9 2.6超…...

Autosar教程-Mcal教程-GPT配置教程

3.3GPT配置、生成 3.3.1 GPT配置所需要的元素 GPT实际上就是硬件定时器,需要配置的元素有: 1)定时器时钟:定时器要工作需要使能它的时钟源 2)定时器分步:时钟源进到定时器后可以通过分频后再给到定时器 定时器模块选择:MCU有多个定时器模块,需要决定使用哪个定时器模块作…...

力扣--动态规划5.最长回文子串

class Solution { public:string longestPalindrome(string s) {// 获取输入字符串的长度int n s.size();// 如果字符串长度为1,直接返回原字符串,因为任何单个字符都是回文串if (n 1)return s;// 创建一个二维数组dp,用于记录子串是否为回…...

PokéLLMon 源码解析(一)

.\PokeLLMon\poke_env\concurrency.py # 导入必要的模块 import asyncio import atexit import sys from logging import CRITICAL, disable from threading import Thread from typing import Any, List# 在新线程中运行事件循环 def __run_loop(loop: asyncio.AbstractEvent…...

银河麒麟服务器操作系统V10【vnc配置多用户登录】

1.添加多用户(规划kingbase使用5901窗口,root使用5903); adduser kingbase 2.配置文件; cp -rp /lib/systemd/system/vncserver.service /etc/systemd/system/vncserver:1.servicecp -rp /lib/systemd/system/vncse…...

Logseq电脑端+安卓端同步gitee或github

文章目录 0.初衷1.电脑端1.1 新建仓库1.2 克隆项目,生成秘钥1.3 添加图谱,选择文件目录,我是原本就有笔记,所以会如下所示。1.4 下载脚本文件1.5赋权限 (windows可跳过)1.6 修改脚本命令1.7 logseq设置同步…...

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit

1.问题描述 在App中供用户在地图上选择地址,目前在使用Map Kit结合geolocationManager逆地理编码时获取的地址信息描述不准确,希望能提供相应的Demo参考。 解决方案 Demo代码示例: getLocation() { let requestInfo: geoLocationManager.…...

OpenLayers 可视化之热力图

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

pam_env.so模块配置解析

在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...