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月前
|
存储 网络协议 Nacos
高效搭建Nacos:实现微服务的服务注册与配置中心
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。
752 81
高效搭建Nacos:实现微服务的服务注册与配置中心
|
23天前
|
Cloud Native Java Nacos
springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析
通过本文,我们详细介绍了如何在 Spring Cloud 和 Spring Boot 中集成 Nacos 进行服务注册和配置管理,并对 Nacos 的源码进行了初步分析。Nacos 作为一个强大的服务注册和配置管理平台,为微服务架构提供
269 14
|
23天前
|
前端开发 Java Nacos
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
本文介绍了如何使用Spring Cloud Alibaba 2023.0.0.0技术栈构建微服务网关,以应对微服务架构中流量治理与安全管控的复杂性。通过一个包含鉴权服务、文件服务和主服务的项目,详细讲解了网关的整合与功能开发。首先,通过统一路由配置,将所有请求集中到网关进行管理;其次,实现了限流防刷功能,防止恶意刷接口;最后,添加了登录鉴权机制,确保用户身份验证。整个过程结合Nacos注册中心,确保服务注册与配置管理的高效性。通过这些实践,帮助开发者更好地理解和应用微服务网关。
78 0
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
|
4月前
|
存储 Java Nacos
Spring Cloud+Nacos+KMS 动态配置最佳实践
本文讲述了 Spring Cloud 应用中结合 Nacos 实现了运行期配置动态更新的功能,以及在此基础上结合 KMS 在不改动代码的情况下对应用使用的敏感配置进行保护,解决将配置迁移到 Nacos 中可能存在的数据安全顾虑,并对其底层工作原理做了简单介绍。
940 65
|
2月前
|
人工智能 安全 Java
AI 时代:从 Spring Cloud Alibaba 到 Spring AI Alibaba
本次分享由阿里云智能集团云原生微服务技术负责人李艳林主讲,主题为“AI时代:从Spring Cloud Alibaba到Spring AI Alibaba”。内容涵盖应用架构演进、AI agent框架发展趋势及Spring AI Alibaba的重磅发布。分享介绍了AI原生架构与传统架构的融合,强调了API优先、事件驱动和AI运维的重要性。同时,详细解析了Spring AI Alibaba的三层抽象设计,包括模型支持、工作流智能体编排及生产可用性构建能力,确保安全合规、高效部署与可观测性。最后,结合实际案例展示了如何利用私域数据优化AI应用,提升业务价值。
239 4
|
3月前
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
434 24
|
3月前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
236 5
|
4月前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评。然而,“客户端不发送心跳检测”是使用中常见的问题之一。本文详细探讨了该问题的原因及解决方法,包括检查客户端配置、网络连接、日志、版本兼容性、心跳检测策略、服务实例注册状态、重启应用及环境变量等步骤,旨在帮助开发者快速定位并解决问题,确保服务正常运行。
88 5
|
4月前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
688 24
|
4月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
268 1
Nacos配置中心