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读取哪个文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BergerLee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值