【微服务】配置管理

server/2024/10/19 7:29:42/

Nacos配置管理

  • 配置管理
    • 配置共享
    • 配置热更新

配置管理

微服务集群中常用,经常变化的配置都写到一个独立的配置文件微服务中进行统一管理

配置共享

在Nacos的界面当中进行配置管理,在配置列表中添加配置
比如各个服务中的jdbc的连接配置:
在这里插入图片描述
还有比如日志配置
添加之后需要拉取配置服务到微服务项目中
在这里插入图片描述

在未来的微服务启动的时候,首先根据SpringCloud框架拉取Nacos中的共有配置初始化Spirng容器,然后再根据SpringBoot加载自己的配置信息,再次初始化Spring容器,但是由于Nacos的地址配置存在于本地的配置文件中,所以需要再SpringCloud中创建一个bootstrap配置文件作为引入文件,从它开始进行读取

完成拉取配置文件需要引入依赖:

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

在配置文件的微服务中配置bootstrap.yaml

spring:application:name: 服务名称cloud:nacos:server-addr: 服务器地址 config:file-extension: yaml #文件名称后缀shared-configs: #共享配置-dataId: shared-jdbc.yaml #共享的数据库相关配置-dataId: shared-log.yaml #共享的日志配置

由于SpringCloud Config的依赖进行自动配置后,项目启动会自动将本地的配置文件中的配置信息将Nacos中拉取下来的配置信息占位符进行替换

配置热更新

当修改配置文件中的配置时,微服务无需重启即可使配置生效

前提条件:

  1. nacos中需要一个与微服务名称相关的配置文件
    在这里插入图片描述
  2. 微服务中需要通过特定的方式读取热配置文件
    @ConfigurationProperties(prefix="文件名称")
@Data
@ConfigurationProperties(prefix="服务名")
public class test{//对应的属性
}

或者通过@Value进行注解

@Data
@RefreshScope    //注解表名该属性需要热更新
public class test{@Value("${属性名}")//属性
}

http://www.ppmy.cn/server/38260.html

相关文章

数据库系统理论——关系数据库

文章目录 一、关系&#xff08;数据结构&#xff09;1、概述2、名词解释3、关系模式、关系数据库、关系数据库模式4、基本关系的性质 二、关系操作&#xff08;数据操作&#xff09;三、关系的完整性1、实体完整性2 、参照完整性3、用户自定义的完整性 四、关系代数五、习题 前…

【编程题-错题集】非对称之美(找规律 / 贪心)

牛客对应题目链接&#xff1a;非对称之美 (nowcoder.com) 一、分析题目 找规律&#xff1a; 判断是否全都是相同字符。判断本身是否是回文。 如果这个字符串每个字符相同&#xff0c;不存在非回文子串&#xff0c;直接返回 0。如果这个字符串不是回文&#xff0c;输出字符串长度…

C++:继承-继承权限

在C中&#xff0c;类的权限分为公有、私有和保护三种。这些权限控制了类的成员&#xff08;数据成员和成员函数&#xff09;对外部代码的可见性和访问性。 公有&#xff08;public&#xff09;权限&#xff1a; 在公有权限下声明的成员可以被类的外部代码直接访问&#xff1b;公…

基于微信小程序的网上购物系统的设计与实现

基于微信小程序的网上购物系统的设计与实现 “Design and Implementation of an Online Shopping System based on WeChat Mini Program” 完整下载链接:基于微信小程序的网上购物系统的设计与实现 文章目录 基于微信小程序的网上购物系统的设计与实现摘要第一章 绪论1.1 研究…

AWTK 和 QT 资源占用不完全对比

因为没有开发两个完全一样的应用程序&#xff0c;对比的结果并不是很准确&#xff0c;仅供参考。 对比的程序为&#xff1a; AWTK demoui 演示了 AWTK 常用功能。 QT QDesktop 演示了 QT 常用功能。 运行平台为&#xff1a; i.MX6ULL Linux 1. 可以执行文件大小 1.1 AWTK…

Navigation常见场景解决方案

路由跳转场景 页面跳转是路由最常用的能力&#xff0c;Navigation通过NavPathStack提供了诸多方法&#xff0c;下文以pushDestination方法为例&#xff0c;介绍Navigation的路由跳转相关能力。 页面间跳转 NavPathStack提供了路由管理的能力&#xff0c;通过NavPathStack进行…

vue3封装获取当前年、月、季度、周

1.新建在utils文件夹中handleTime.js文件用于封装方法 // 计算当前周的开始和结束时间 export function calcNowWeek() {let startWeek moment().weekday(0).format(YYYY-MM-DD);startWeek moment(startWeek).subtract(2, days).format(YYYY-MM-DD)let endWeek moment().we…

kafka系列一:初识kafka

概述 kafka是由scala语言编写的一个分布式且具备高可用、高性能、可持久化、可水平扩展、支持流数据处理等众多特性的消息系统&#xff0c;常活跃于大数据生态中&#xff0c;而且大名鼎鼎的rocketmq就是参考了kafka的设计原理。 目前越来越多的开源分布式中间件都支持与kafka集…