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 作为配置中心的添加配置文件及微服务拉去配置信息使用,二是实现配置热更新,从而达到我们的让配置管理变得更加高效和敏捷的目的。

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

相关文章
|
3月前
|
Cloud Native Java Nacos
微服务时代的新宠儿!Spring Cloud Nacos实战指南,带你玩转服务发现与配置管理,拥抱云原生潮流!
【8月更文挑战第29天】Spring Cloud Nacos作为微服务架构中的新兴之星,凭借其轻量、高效的特点,迅速成为服务发现、配置管理和治理的首选方案。Nacos(命名和配置服务)由阿里巴巴开源,为云原生应用提供了动态服务发现及配置管理等功能,简化了服务间的调用与依赖管理。本文将指导你通过五个步骤在Spring Boot项目中集成Nacos,实现服务注册、发现及配置动态管理,从而轻松搭建出高效的微服务环境。
230 0
|
24天前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
Springcloud Alibaba + jdk17+nacos 项目实践
|
19天前
|
负载均衡 算法 Java
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
40岁老架构师尼恩分享了关于SpringCloud核心组件的底层原理,特别是针对蚂蚁集团面试中常见的面试题进行了详细解析。内容涵盖了Nacos注册中心的AP/CP模式、Distro和Raft分布式协议、Sentinel的高可用组件、负载均衡组件的实现原理等。尼恩强调了系统化学习的重要性,推荐了《尼恩Java面试宝典PDF》等资料,帮助读者更好地准备面试,提高技术实力,最终实现“offer自由”。更多技术资料和指导,可关注公众号【技术自由圈】获取。
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
|
8天前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
18 0
|
2月前
|
负载均衡 Java Nacos
SpringCloud基础2——Nacos配置、Feign、Gateway
nacos配置管理、Feign远程调用、Gateway服务网关
SpringCloud基础2——Nacos配置、Feign、Gateway
|
3月前
|
安全 Nacos 数据安全/隐私保护
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置
本文详细介绍了如何在微服务环境下从 Nacos 1.3.0 升级到 2.3.0,并确保 Seata 各版本的兼容性。作者小米分享了升级过程中的关键步骤,包括备份配置、更新鉴权信息及验证测试等,并解答了常见问题。通过这些步骤,可以帮助读者顺利完成升级并提高系统的安全性与一致性。
113 8
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置
|
27天前
|
负载均衡 算法 Nacos
SpringCloud 微服务nacos和eureka
SpringCloud 微服务nacos和eureka
55 0
|
3月前
|
Cloud Native Java Nacos
Spring Cloud Config、Apollo、Nacos和Archaius对比
这篇文章对比了Spring Cloud Config、Apollo、Nacos和Archaius这四种配置中心的适应场景、优缺点。文中讨论了它们的功能特点,例如Spring Cloud Config的集中化配置管理和动态刷新能力,Apollo的实时配置推送和权限治理,Nacos的服务发现和管理功能,以及Archaius的动态配置更新能力。文章指出选择配置中心应根据项目需求和架构来决定,并提供了一个对比图来帮助读者更直观地理解这些工具的差异。
70 1
Spring Cloud Config、Apollo、Nacos和Archaius对比
|
30天前
|
负载均衡 Java API
【Spring Cloud生态】Spring Cloud Gateway基本配置
【Spring Cloud生态】Spring Cloud Gateway基本配置
34 0
|
2月前
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡