写点什么

SpringCloud 配置中心(Nacos)的简单使用

作者:
  • 2022 年 9 月 03 日
    河南
  • 本文字数:1618 字

    阅读完需:约 5 分钟

SpringCloud 配置中心(Nacos)的简单使用

前言

  Nacos 是 Spring Cloud Alibaba 核心组件之一,可以用作 Spring Cloud 的注册中心和配置中心,本文重点讲述 Nacos 在 SpingCloud 的配置作用。

  Nacos 的动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷,配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。

1、统一配置管理

  当微服务部署的实例越来越多,逐个修改微服务配置,显然不现实,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置,他就是 Nacos 。


  我们服务中配置如果都放在代码中或者项目里的配置文件中,那么逐个修改微服务配置,提交上线,重启服务,那么将十分不科学,如果我们使用统一配置管理,就可以在服务启动的时候从配置管理服务读取配置,启动后,修改配置后,也会主动通知我们的服务。

1、在 nacos 中添加配置文件

Nacos 微服务也可以将配置变更通知到微服务。



详细步骤如下:


1、在配置列表中添加配置。



2、然后在弹出的表单中,填写配置信息。



2、从微服务拉取配置

数多微服务可以从 Nacos 配置中心拉取配置。



nacos-config 依赖


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


服务名称、开发环境、Nacos 地址、文件后缀名等等要与 nacos 中配置文件保持一致,保证拉取的高可用。


测试


1、引入 nacos-config 依赖


首先,在 user-service 服务中,引入 nacos-config 的客户端依赖。


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


2、添加 bootstrap.yaml


在 user-service 中添加一个 bootstrap.yaml 文件,内容如下。


spring:  application:    name: user-service # 服务名称  cloud:    nacos:      server-addr: localhost:8848 # Nacos地址      config:        file-extension: yaml # 文件后缀名
复制代码


这里的 bootstrap.yaml 与刚刚在 nacos 中添加的配置文件一一对应。


3、读取 nacos 配置


在 user-service 中的 UserController 中添加业务逻辑,读取 pattern.dateformat 配置。


    @Value("${pattern.dateformat}")     //在nacos中添加的配置文件    private String dateformat;
@GetMapping("now") public String now(){ //获取在nacos中添加的配置文件 return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat)); }
复制代码


4、在页面访问,可以看到效果。



2、配置热更新

我们最终的目的,微服务中无需重启即可让配置生效,也就是配置热更新

1、方式一

在 @Value 注入的变量所在类上添加注解 @RefreshScope。



2、方式二

使用 @ConfigurationProperties 注解代替 @Value 注解。


在 user-service 服务中,添加一个配置类,读取 patterrn.dateformat 属性。


@Component      //配置类@Data        //get、set@ConfigurationProperties(prefix = "pattern")public class PatternProperties {    private String dateformat;}
复制代码


在 UserController 中使用这个类代替 @Value。


  @Autowired    private PatternProperties patternProperties;
@GetMapping("now") public String now(){ //获取在nacos中添加的配置文件 return LocalDateTime.now().format(DateTimeFormatter.ofPattern(patternProperties.getDateformat())); }
复制代码


此时便实现了配置热更新,修改在 Naocs 的配置不用重启微服务也能读取到,达到我们的让配置管理变得更加高效和敏捷的目的。

总结

  以上就是 Nacos 作为配置中心的简单使用,其实主要就两点,一是 Naocs 作为配置中心的添加配置文件及微服务拉去配置信息使用,二是实现配置热更新,从而达到我们的让配置管理变得更加高效和敏捷的目的。

  每日一句毒鸡汤:窮一點不要緊,要緊的是不只一點。

发布于: 刚刚阅读数: 4
用户头像

关注

在校大三学生一枚 2022.08.02 加入

喜欢学习编程,擅长技术栈JAVA

评论

发布
暂无评论
SpringCloud 配置中心(Nacos)的简单使用_nacos_斯_InfoQ写作社区