前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Nacos入门指南04 - 分布式配置实践

Nacos入门指南04 - 分布式配置实践

原创
作者头像
dys
修改于 2020-11-02 02:45:38
修改于 2020-11-02 02:45:38
7710
举报
文章被收录于专栏:性能与架构性能与架构

你好,欢迎阅读,本文是系列文章中的第4篇。

Part1 - Nacos 是什么?

Part2 - Nacos 环境搭建

Part3 - Nacos 服务发现实践

Part4 - Nacos 分布式配置实践

本文目的是使用 Nacos 管理服务的配置。

步骤:

(1)创建一个 SpringBoot 服务,使用本地配置方式。

(2)Nacos 中创建配置。

(3)SpringBoot 服务整合 Nacos,改为使用 Nacos 中的配置。

(4)实现配置动态刷新。

1. 创建服务

pom.xml

代码语言:txt
AI代码解释
复制
...
  <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.5.RELEASE</version>
		<relativePath/> 
	</parent>
	<groupId>com.example</groupId>
	<artifactId>configdemo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>configdemo</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>11</java.version>
	</properties>

	<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 加依赖 nacos-config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
	</dependencies>

    <dependencyManagement>
        <dependencies>
            <!-- spring cloud 依赖管理 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- spring cloud alibaba 依赖管理 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
...

添加配置(application.yaml):

代码语言:txt
AI代码解释
复制
test:
  name: local-config

添加一个测试接口,用于输出配置值:

代码语言:txt
AI代码解释
复制
...
@RestController
public class TestController{
    @Value("${test.name}")
    private String test_name;

    @GetMapping("/test")
    public String testpriority(){
        return test_name;
    }
}

启动后访问:

http://localhost:8080/test

效果:

成功输出了本地配置。

2. Nacos 中新建配置

进入 Nacos 控制的配置列表页面:

点击新建配置的按钮,在新建配置页面添加:

Data ID 项填写服务名 configdemo.yaml,配置格式选择 YAML,配置内容中填写:

代码语言:txt
AI代码解释
复制
test:
  name: nacos-config

这里把配置的值改为了 “nacos-config”,用于与之前的 "local-config" 作为区分,然后点击页面底部的发布按钮。

回到配置列表页面,即可看到刚刚新建的配置:

3. 服务整合 Nacos 配置

Nacos 配置的依赖在第一步已经添加好了,下面主要是修改配置。

首先,把之前的 application.yaml 文件名改为 bootstrap.yaml,这是因为 bootstrap.yaml 的优先级是最高的。

然后,在 bootstrap.yaml 中添加配置:

代码语言:txt
AI代码解释
复制
spring:
  application:
    name: configdemo
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        file-extension: yaml

注意,现在服务本地配置文件中已经没有 "test.name" 这个配置项了。

重新启动服务,在启动日志中会看到如下提示:

再次刷新页面:

此次输出的值为 Nacos 中配置的 "nacos-config",说明已经成功读取了 Nacos 中的配置信息。

现在需要说明一下服务为什么可以自动找到 Nacos 中的配置文件

服务启动时,会读取 bootstrap.yaml 中指定的 nacos config 服务器地址,然后根据 spring.application.name 配置项的值与 spring.cloud.nacos.config.file-extension 的值构造出 Data ID,由此就可以读取到 Nacos 中的配置文件了。

4. 动态刷新

如果希望在 Nacos 修改配置之后,实例可以动态获取最新值,则需要添加一个注解 @RefreshScope

代码如下:

代码语言:txt
AI代码解释
复制
@RefreshScope
@RestController
public class TestController{
    @Value("${test.name}")
    private String test_name;

    @GetMapping("/test")
    public String testpriority(){
        return test_name;
    }
}

重新启动服务。

下面在 Nacos 控制台修改配置:

在现有值的后面添加了字符串 “-new”,以作为区分:

然后点击页面底部的发布按钮,点击后,会弹出新旧配置对比窗口:

确认无误后,点击确认发布按钮。

这样配置就修改完成了,下面刷新页面:

[0081Kckwgy1gk9w07krf7j30xk03ojrn.jpg]

可以看到,已经变成了刚刚修改后的值。

注意,修改配置后可没有重启服务,说明已经成功实现了配置的动态刷新。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Nacos入门指南04 - 分布式配置实践
(3)SpringBoot 服务整合 Nacos,改为使用 Nacos 中的配置。
dys
2020/11/09
4840
Nacos入门指南04 - 分布式配置实践
Nacos入门指南03 - 服务发现实践
然后在 service-consumer 的 Controller 中实现对 service-provider 的接口调用。
dys
2020/11/01
1.1K0
Nacos入门指南03 - 服务发现实践
nacos配置中心的搭建和用法
我是直接用的1.3的当时在家下载github上的东西太慢了就懒得下直接用1.3的也是没问题滴。
技术从心
2019/12/30
2K0
nacos做服务配置中心
在TestController上加个@RefreshScope注解,然后我们去nacos客户端手动修改config.info的信息,然后重新调用这个/test接口,会发现响应的是修改后的内容。
Java旅途
2020/10/22
1.9K0
SpringCloud+Nacos实现服务配置中心(Hoxton版本)
关于 Nacos Spring Cloud 的详细文档请参看:Nacos Config和Nacos Discovery。
程序员的时光001
2021/04/23
1.3K0
SpringCloud+Nacos实现服务配置中心(Hoxton版本)
SpringCloud--alibliba--Nacos--上
https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now
大忽悠爱学习
2021/12/07
7680
SpringCloud--alibliba--Nacos--上
nacos 服务注册与配置中心
启动服务之后,访问 http://localhost:8848/nacos/#/serviceManagement 即可看到以下信息:
wsuo
2020/10/10
6960
nacos 服务注册与配置中心
Spring Cloud Alibaba+Nacos 2.2.5.Release 的基本使用和采坑问
◆ 前言 Nacos 是构建以“服务”为中心的现代应用架构的服务基础设施, 支持几乎所有主流类型服务的发现、配置和管理,是目前微服务项目构建的主流服务注册组件。本 Chat 以构建商品中心项目为例
IT大咖说
2022/06/24
1.5K0
Spring Cloud Alibaba+Nacos 2.2.5.Release 的基本使用和采坑问
使用Nacos作为配置中心(四)
通过之前文章的学习我们已经学会了使用Nacos完成服务的注册与发现。同时也介绍了Spring Cloud中不同风格的服务消费方式。接下来,我们再来学习下Nacos的另一个重要功能:配置管理
用户1212940
2022/04/13
1.4K0
使用Nacos作为配置中心(四)
【Nacos系列教程】Nacos第二篇:配置中心演示一
在上一篇,我们讲解了,怎么在Windows系统中启动一个nacos。我们就使用这个nacos来作为配置中心
凯哥Java
2022/12/16
7070
【Nacos系列教程】Nacos第二篇:配置中心演示一
Nacos作为服务配置中心实战
  Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取, 拉取配置之后,才能保证项目的正常启动。
别团等shy哥发育
2023/02/25
8550
Nacos作为服务配置中心实战
Spring Cloud 整合 nacos 实现动态配置中心
上一篇 Spring Cloud 微服务实战——nacos 服务注册中心搭建(附源码) 讲解了Spring Cloud 整合 nacos 实现服务注册与发现,nacos除了有服务注册与发现的功能,还有提供动态配置服务的功能。本文主要讲解Spring Cloud 整合nacos实现动态配置服务。主要参考官方部署手册点我。
用户10384376
2023/02/26
1.3K0
Spring Cloud 整合 nacos 实现动态配置中心
Spring Cloud Alibaba -Nacos入门讲解
Spring Cloud Alibaba 为分布式应用程序开发提供了一站式解决方案。它包含了开发分布式应用程序所需的所有组件,使得你可以轻松地使用Spring Cloud开发应用程序。
麦洛
2021/03/23
1.1K0
Spring Cloud Alibaba -Nacos入门讲解
SpringCloud之Nacos配置管理【统一配置管理,配置热更新,配置共享】
上一篇博客地址:(2条消息) 微服务框架之Spring Cloud 学习_一切总会归于平淡的博客-CSDN博客
叫我阿杰好了
2022/11/07
2.9K0
SpringCloud之Nacos配置管理【统一配置管理,配置热更新,配置共享】
SpringCloud Alibaba Nacos 服务注册和配置中心
前四个字母分别为 Naming 和 Configuration 的前两个字母,最后的 s 为 Service。
OY
2022/03/17
8110
SpringCloud Alibaba Nacos 服务注册和配置中心
推荐:Spring Cloud 整合 Nacos 实现服务配置中心
在之前的文章 《Nacos 本地单机版部署步骤和使用》 中,大家应该了解了 Nacos 是什么?其中 Nacos 提供了动态配置服务功能
二哥聊运营工具
2021/12/16
5860
推荐:Spring Cloud 整合 Nacos 实现服务配置中心
Nacos入门指南02 - 环境搭建
可惜的是码云中只同步了源码,并没有同步发布页面中的内容,直接在 GitHub 中下载会很慢。
dys
2020/11/01
1.5K0
Nacos入门指南02 - 环境搭建
Java学习笔记-微服务(7)-注册配置中心Nacos
Nacos 的含义是 Dynamic Naming and Configuration Service。
咸鱼程序员
2025/03/08
2790
Java学习笔记-微服务(7)-注册配置中心Nacos
Nacos 服务发现、配置管理和服务管理平台
据说Nacos在阿里巴巴内部有超过10万的实例运行,已经过了类似双十一等各种大型流量的考验。
用户9615083
2022/12/25
1.2K0
Nacos 服务发现、配置管理和服务管理平台
一文读懂Nacos注册中心
—般来说,如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模式。当前主流的服务如Spring cloud和Dubbo服务,都适用于AP模式,AP模式为了服务的可能性而减弱了一致性,因此AP模式下只支持注册临时实例。
Blue_007
2023/11/02
1.4K0
一文读懂Nacos注册中心
相关推荐
Nacos入门指南04 - 分布式配置实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档