Nacos配置管理

前言:大家好,我是小威,24届毕业生,曾经在某央企公司实习,目前已入职某税务公司。本篇文章将分享nacos配置管理和热更新的知识点。
本篇文章记录的基础知识,适合在学Java的小白,也适合复习中,面试中的大佬🤩🤩。
如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
小威在此先感谢各位大佬啦~~🤞🤞
在这里插入图片描述

🏠个人主页:小威要向诸佬学习呀
🧑个人简介:大家好,我是小威,一个想要与大家共同进步的男人😉😉
目前状况🎉:24届毕业生,曾经在某央企公司实习,目前在某税务公司实习👏👏

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,我亲爱的大佬😘

在这里插入图片描述

以下正文开始

我们都知道,nacos经常用来作为服务的注册中心使用,致力于微服务的发现和管理。但同时,nacos也可以配置与整合服务,接下来将一步步操作nacos的统一配置管理。

首先登录nacos,找到配置管理中的配置列表,点击+号,新建配置,配置文件的id经常由服务名称,profile和后缀名组成,由于我们的服务是用户服务,因此我们取名为userservice,profile环境为dev开发环境,后缀名为yaml,因此id为userservice-profile.yaml。配置内容为:

pattern:
  dateformat: yyyy年MM月dd日 HH:mm:ss

如下所示新建成功:
在这里插入图片描述

项目启动后,在没有进行nacos配置管理之前,会首先读取本地的配置文件application.yml,加上了nacos中的配置文件,会将nacos中的配置文件和application.yml中的文件进行整合。但是我们需要知道,在何处加载nacos配置文件,因此在项目启动之后,我们首先需要获取nacos的地址。

application.yml文件的读取在nacos文件之后,由于bootstrap.yml文件的优先级比较高,因此,我们可以将nacos地址,文件相关信息等放入到bootstrap.yml中。

在resources下新建bootstrap.yaml(引导文件,优先级比application.yaml高),写入nacos的相关配置信息(名成,环境,后缀名都需要和上面建立的nacos配置一样)这些信息决定了程序启动时去nacos中读取哪个文件:
在这里插入图片描述

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

在这里插入图片描述

同时,在userservice的pom文件中引入nacos的配置管理客户端依赖:

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

下面我们测试在项目中读取nacos的配置内容:

@RequestMapping("/user")
public class UserController {
    @Value("${pattern.dateformat}")//获取nacos配置文件的内容
    private String dateformat;
    @GetMapping("/now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat)); //与当前时间对应
    }

}

之后启动SpringBoot的几个端口
在这里插入图片描述
按照正确的路径访问即可看到浏览器上显示的当前时间。
在这里插入图片描述
在这里插入图片描述

当我们修改nacos中的配置内容时,需要重启我们的微服务项目,那么如何实现热更新呢(不用重启微服务项目,刷新访问浏览器即可)。

我们只需要在@value注入的变量所在的类上添加@RefreshScope即可,代码:

@RequestMapping("/user")
@RefreshScope
public class UserController {
    @Value("${pattern.dateformat}")//获取nacos配置文件的内容
    private String dateformat;
    @GetMapping("/now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat)); //与当前时间对应
    }

}

同时,我们还有另一种方法,不使用@value注解的方式,新建一个配置类:

package cn.itcast.user.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dateformat;
}

自动装配注入PatternProperties 类调用get方法即可。

public class UserController {


//    @Value("${pattern.dateformat}")
//    private String dateformat;
    @Autowired
    private PatternProperties patternProperties;

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

对于nacos的多服务共享配置,多种配置的优先级为:服务名-profile.yaml >
服务名称.yaml > 本地配置(application.yaml)。

本篇文章就先分享到这里了,后续会继续分享其他的知识,感谢大佬认真读完支持咯~
在这里插入图片描述

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起讨论🍻
希望能和诸佬们一起努力,今后进入到心仪的公司
再次感谢各位小伙伴儿们的支持🤞

在这里插入图片描述

  • 29
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论
Nacos配置中心提供了配置文件加密功能,可以对配置文件中的敏感信息进行加密处理。这样可以保护敏感信息,如数据库连接方式或第三方存储系统的相关信息。在Nacos的2.1版本中,新增了配置文件加密功能,无需自己实现,可以轻松实现配置内容的AES加密。\[1\] 要使用Nacos配置中心的加密功能,可以在启动配置类bootstrap.yml中添加相关信息。可以通过自定义加解密类来实现加解密操作,也可以使用jasypt默认的StringEncryptor进行加解密。在配置文件中添加jasypt的相关配置,包括加解密类的bean和盐值。\[2\] 配置文件会存储在Nacos的config_info表中,配置内容存储在content字段中。如果配置了加密,content字段中存储的是密文,但在Nacos客户端展示配置时会以明文形式显示。这样可以保证配置的安全性,同时方便查看配置内容。\[3\] #### 引用[.reference_title] - *1* *3* [【Nacos配置中心】对配置文件内容进行加密](https://blog.csdn.net/weixin_43888891/article/details/126783468)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [nacos配置文件中敏感信息加密](https://blog.csdn.net/goldenminers/article/details/120488006)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小威要向诸佬学习呀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值