Nacos 配置中心实战(一)

简介: Nacos 配置中心实战

环境:Nacos 1.4.2

什么是Nacos

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

通俗解释就是:Nacos是一个注册中心&配置中心

关于Nacos注册中心的功能,在Nacos注册中心实战篇中,阿鉴已经给大家详细介绍了,今天我们就来看看配置中心如何使用吧~

基本使用

在介绍Nacos注册中心实战时,阿鉴已经介绍并搭建好了Nacos集群,这里就直接使用当时的Nacos集群了。

  1. 引入依赖
    my-goods项目引入config依赖
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  1. 编辑配置
spring:
  application:
    name: my-goods
  cloud:
    nacos:
      config:
        server-addr: 192.168.2.11:8850
        username: nacos
        password: nacos
  1. 在nacos新建配置文件并编写配置

由于我们的配置中并未指定命名空间,所以默认使用public命名空间

Data ID: 在什么都没有配置的情况下,Data ID为「服务名」或者「服务名.文件扩展名」,也就是my-goods或者my-goods.properties(我们也没有配置文件扩展名,默认为properties)

Group: 默认为DEFAULT_GROUP

配置格式:即为文件格式,默认为properties

配置内容:文件格式是properties, 配置内容即为properties格式写法

  1. 编写代码
@RestController
@RequestMapping("/goods")
public class GoodsController {
    @Value("${goods}")
    public String goods;
    @GetMapping("/config")
    public String config(){
        return "this goods is " + goods;
    }
}
  1. 启动服务测试

此时已经读取到远程的配置

动态配置

Nacos作为配置中心,将配置放在远端管理只是基础能力,更重要的是还提供了方便快捷的动态刷新配置功能。

  1. 修改代码
    要想使得配置具有自动刷新的能力,只需要在对应的类加上@RefreshScope注解即可
@RefreshScope
@RestController
@RequestMapping("/goods")
public class GoodsController {
    @Value("${goods}")
    public String goods;
    @GetMapping("/config")
    public String config(){
        return "this goods is " + goods;
    }
}
  1. 修改Nacos上的配置

    修改配置:apple -> banana

    发布完之后可以看到控制台中出现监听到配置变更的输出
2021-05-09 22:45:13.103  INFO 5930 --- [168.1.11_8850] c.a.n.client.config.impl.ClientWorker    : [fixed-114.116.212.76_8850] [polling-resp] config changed. dataId=my-goods, group=DEFAULT_GROUP
2021-05-09 22:45:13.104  INFO 5930 --- [168.1.11_8850] c.a.n.client.config.impl.ClientWorker    : get changedGroupKeys:[my-goods+DEFAULT_GROUP]
  1. 再次调用接口

可以看到配置已经发生了变更

进阶使用

增加服务环境

一般来说,在我们开发项目时,都会区分环境,比如开发环境、测试环境、生产环境,每个环境配置都会有些许不同,比如mysql配置。那我们就会在配置文件中增加以下配置:

spring:
  profiles:
    active: dev

此时Nacos将增加新的Data ID: 服务名-环境名.文件扩展名

即为 my-goods-dev.properties

  1. 修改代码
@RefreshScope
@RestController
@RequestMapping("/goods")
public class GoodsController {
    @Value("${goods}")
    public String goods;
    @Value("${price}")
    public String price;
    @GetMapping("/config")
    public String config(){
        return "this goods is " + goods + ", and price is " + price;
    }
}
  1. 新增配置

    增加一个新的data id 为my-goods-dev.properties配置

  2. 重启项目测试

优先级问题

如果在my-goods-dev.properties配置中增加goods=lemon的配置,那么此时my-goods的和my-goods-dev.propertiesgoods配置哪个会生效呢?

  1. my-goods-dev.properties中增加goods=lemon的配置

  2. 直接测试,此时无须重启项目

从测试结果看出,Nacos的优先级和Spring的优先级相同,带环境名的配置优先


目录
相关文章
|
8天前
|
存储 网络协议 Nacos
高效搭建Nacos:实现微服务的服务注册与配置中心
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。
171 81
高效搭建Nacos:实现微服务的服务注册与配置中心
|
25天前
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
146 10
|
2月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
122 1
Nacos配置中心
|
2月前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评。然而,“客户端不发送心跳检测”是使用中常见的问题之一。本文详细探讨了该问题的原因及解决方法,包括检查客户端配置、网络连接、日志、版本兼容性、心跳检测策略、服务实例注册状态、重启应用及环境变量等步骤,旨在帮助开发者快速定位并解决问题,确保服务正常运行。
51 5
|
2月前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
|
2月前
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
41 4
|
2月前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,实际使用中常遇到“客户端不发送心跳检测”的问题。本文深入探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务正常运行。通过检查客户端配置、网络连接、日志、版本兼容性、心跳策略、注册状态、重启应用和环境变量等步骤,系统地排查和解决这一问题。
58 3
|
2月前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
73 3
|
2月前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
97 0
|
4月前
|
负载均衡 Java Nacos
SpringCloud基础2——Nacos配置、Feign、Gateway
nacos配置管理、Feign远程调用、Gateway服务网关
SpringCloud基础2——Nacos配置、Feign、Gateway