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

简介: Nacos 是 Spring Cloud Alibaba 核心组件之一,可以用作 Spring Cloud 的注册中心和配置中心,本文重点讲述 Nacos 在SpingCloud 的配置作用。Nacos 的动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷,配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。...

前言

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

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

1、统一配置管理

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

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

1、在nacos中添加配置文件

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

image-20220827131137718.png

详细步骤如下:

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

image-20220827132841880.png

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

image-20220827133052529.png

2、从微服务拉取配置

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

image-20220827131023034.png

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中添加的配置文件privateStringdateformat;
@GetMapping("now")
publicStringnow(){                //获取在nacos中添加的配置文件returnLocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
    }

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

image-20220827134149812.png

2、配置热更新

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

1、方式一

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

image-20220827134423852.png

2、方式二

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

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

@Component//配置类@Data//get、set@ConfigurationProperties(prefix="pattern")
publicclassPatternProperties {
privateStringdateformat;
}

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

 

@AutowiredprivatePatternPropertiespatternProperties;
@GetMapping("now")
publicStringnow(){                //获取在nacos中添加的配置文件returnLocalDateTime.now().format(DateTimeFormatter.ofPattern(patternProperties.getDateformat()));
    }

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

总结

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

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

相关文章
|
8天前
|
Nacos
nacos 配置页面的模糊查询
nacos 配置页面的模糊查询
|
14天前
|
机器学习/深度学习 Java Nacos
Nacos 配置中心(2023旧笔记)
Nacos 配置中心(2023旧笔记)
19 0
|
14天前
|
存储 前端开发 Java
第十一章 Spring Cloud Alibaba nacos配置中心
第十一章 Spring Cloud Alibaba nacos配置中心
22 0
|
14天前
|
Java Nacos 开发者
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
|
17天前
|
敏捷开发 API 持续交付
云效产品使用常见问题之把云效上的配置发到Nacos上面去如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1月前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
|
1月前
|
开发框架 负载均衡 Java
Spring boot与Spring cloud之间的关系
总之,Spring Boot和Spring Cloud之间的关系是一种构建和扩展的关系,Spring Boot提供了基础,而Spring Cloud在此基础上提供了分布式系统和微服务架构所需的扩展和工具。
21 4
Spring boot与Spring cloud之间的关系
|
1月前
Springcloud-ribbon和hystrix配置
Springcloud-ribbon和hystrix配置
8 0
|
2月前
|
Nacos
nacos手动创建配置命名空间隔离
nacos手动创建配置命名空间隔离
22 1
|
2月前
Springcloud-配置
Springcloud-配置
9 0