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

Nacos微服务配置管理和拉取

目录

前言

需求分析

解决方案

实现步骤

进入nacos控制面板

新建配置

项目配置获取步骤

统一配置管理步骤

引入Nacos的配置管理客户端依赖

新建bootstrap.yml文件

更改application.yml文件

测试

总结


前言

回顾之前的微服务项目结构,搭建了两个微服务,分别是userserviceorderservice,每一个微服务都需要对数据库进行查询,每一个服务之间还进行了相互调用,要实现相互调用就需要将每一个服务注册到注册中心,消费者就可以从注册中心完成服务的发现实现服务的获取和负载均衡

随着项目的变大,我们的微服务越来越多,我们可能会面临一些问题,比如配置文件需要修改,那么我们就要逐个去调整每一个微服务的配置文件,并且调整完成之后每一个微服务都需要重启

需求分析

  • 希望对每一个微服务的配置文件进行统一管理
  • 改动完了之后不用对服务进行重启,实现热更新

解决方案

需要一个配置管理服务,记录微服务中一些核心的配置,在微服务启动的时候可以去读取配置管理服务中的配置与本地的配置进行结合作为完整配置

当配置管理服务更改之后会立即通知微服务,微服务就会立即读取新的配置实现热更新

实现步骤

进入nacos控制面板

新建配置

配置内容不是将项目中的配置内容全部粘贴过来,是需要进行热更新的配置添加进来就行,然后点击发布

这样就添加成功了

项目配置获取步骤

在项目启动之后会读取nacos中的配置文件,但读取之前需要知道nacos地址,而nacos地址通常会在application.yml中,所以在读取本地配置文件之前需要读取bootstrap.yml,bootstrap.yml文件是引导文件,优先级高于application.yml

统一配置管理步骤

引入Nacos的配置管理客户端依赖

<!--nacos配置管理依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

新建bootstrap.yml文件

在userservice中的resource目录添加一个bootstrap.yml文件

spring:
  application:
    name: userservice
  profiles:
    active: dev #环境
  cloud:
    nacos:
      server-addr: localhost:8848 #nacos地址
      config:
        file-extension: yaml #后缀名

更改application.yml文件

将application.yml文件中与bootstrap.yml文件冲突的配置删掉,例如:

  application:
    name: userservice
  cloud:
    nacos:
      server-addr: localhost:8848 #nacos服务地址

测试

user-service中将pattern.dateformat这个属性注入到UserController中做测试

    @Value("${pattern.dateformat}")
    private String dateformat;

    @GetMapping("now")
    public String now() {
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
    }

重启userservice,浏览器进入 http://localhost:8081/user/now

这里就已经获取到了nacos配置文件

总结

  • 将配置交给Nacos管理的步骤
    1. 在Nacos中添加配置文件
    2. 在微服务中引入nacos的config依赖
    3. 在微服务中添加bootstrap.yml,配置nacos地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪个文件

http://www.kler.cn/a/349978.html

相关文章:

  • Kafak 单例生产者实现-C#操作
  • Linux下 date时间应该与系统的 RTC(硬件时钟)同步
  • JavaScript笔记APIs篇01——DOM获取与属性操作
  • Linux网络 序列化与反序列化
  • 【mptcp】ubuntu18.04和MT7981搭建mptcp测试环境操作说明
  • 缓存之美:万文详解 Caffeine 实现原理(下)
  • NCP1342 | 65W氮化镓快充电源主控芯片,准谐振反激控制器
  • Nginx中的并发限制之limit_req和limit_conn和limit_rate 详解
  • threejs-光线投射实现3d场景交互事件
  • ORB-SLAM2之OpenCV reshape函数
  • 基于Spring Boot+vue技术的导游系统设计与实现
  • 10-μA低功耗30-ppm/°C 漂移电压基准-ZCC3325替代REF33XX
  • AI开发-三方库-Hugging Face-Pipelines
  • Dirmap:一款高级Web目录文件扫描工具
  • 【Linux】Linux进程基础
  • pdf文件怎样一张纸打印四页
  • 多模态大语言模型(MLLM)-InstructBlip深度解读
  • 【自动驾驶汽车通讯协议】GMSL通信技术以及加串器(Serializer)解串器(Deserializer)介绍
  • 中小型医院网站:Spring Boot框架详解
  • kali chrome 安装 hackbar
  • 16年408计算机网络
  • 【动手学深度学习】6.5 汇聚层(个人向笔记)
  • 阿里云数据库导出 | 数据管理(兼容数据库备份)
  • Java->排序
  • 影刀RPA接口_查询应用主流程参数结构
  • 上半年净利下滑85%,光峰科技能否靠“上车”扭转局面?