本文来说下Nacos分布式配置如何来实践

文章目录

  • 概述
  • 创建服务
  • Nacos中新建配置
  • 服务整合Nacos配置
  • 动态刷新
  • 本文小结

概述

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

步骤

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

(2)Nacos 中创建配置。

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

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


创建服务

pom.xml

...<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):

test:name: local-config

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

...
@RestController
public class TestController{@Value("${test.name}")private String test_name;@GetMapping("/test")public String testpriority(){return test_name;}
}

启动后访问

http://localhost:8080/test

效果

![image-20201101185433206](/Users/a/Library/Application Support/typora-user-images/image-20201101185433206.png)

成功输出了本地配置。


Nacos中新建配置

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


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


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

test:name: nacos-config

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

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


服务整合Nacos配置

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

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

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

spring:application:name: configdemocloud:nacos:config:server-addr: localhost:8848file-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 中的配置文件了。


动态刷新

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

代码如下:

@RefreshScope
@RestController
public class TestController{@Value("${test.name}")private String test_name;@GetMapping("/test")public String testpriority(){return test_name;}
}

重新启动服务。下面在 Nacos 控制台修改配置:


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


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


确认无误后,点击确认发布按钮。这样配置就修改完成了,下面刷新页面:


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


本文小结

本文详细介绍了Nacos分布式配置相关的知识与内容。

Nacos分布式配置实践相关推荐

  1. Spring Cloud Alibaba Nacos 分布式配置中心

    文章目录 1 摘要 2 核心 Maven 依赖 3 核心代码 3.1 bootstrap 配置文件 3.2 application 配置文件 3.3 配置测试类 - Controller 层 3.4 ...

  2. nacos分布式配置中心搭建与使用

    前言 在使用springcloud的时候,提供了分布式配置中心的功能,可以通过git.gitlab.SVN等对微服务项目中用到的配置文件进行统一管理了 nacos基于springcloud也提供了一套 ...

  3. Spring Cloud Alibaba Nacos 分布式配置

    Spring Cloud Alibaba 分布式配置 1. 简介 Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持.使用 Spr ...

  4. nacos 配置_阿里巴巴 Nacos 分布式配置中心原理

    动态配置管理是 Nacos 的三大功能之一,通过动态配置服务,我们可以在所有环境中以集中和动态的方式管理所有应用程序或服务的配置信息. 动态配置中心可以实现配置更新时无需重新部署应用程序和服务即可使相 ...

  5. 【Spring Cloud Alibaba】Spring Cloud Alibaba 分布式配置Nacos实践

    课程说明 本次课程,你将会学习如下: 使用 Nacos Config 作为 Spring Cloud 分布式配置 使用 Nacos Config 实现 Bean 动态刷新 了解 Nacos Confi ...

  6. 分布式配置中心之 —— nacos使用详解

    前言 随着分布式应用架构的广泛使用,随之而来的要解决的一个很重要的问题就是分布式环境下配置文件该如何处理,我们知道配置文件是任何一个系统中必不可少的,而且承载的信息量也越来越大,如何在分布式环境中对配 ...

  7. 五Spring Cloud Alibaba基于Nacos构建分布式配置中心

      1.什么是Nacos 以下部分解释摘自于Nacos官方文档: Nacos 致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据 ...

  8. Nacos(配置中心)实践

    一.安装Nacos Server 安装之前请确保Java环境和maven环境正常: 64 bit JDK 1.8+: Maven 3.2.x+: 1.下载源码或者安装包 我选择直接下载安装包:http ...

  9. disconf mysql_分布式配置中心 Disconf实践- 安装篇

    Updated on 五月 23, 2018 分布式配置中心 Disconf实践- 安装篇 disconf 环境准备: Nginx:处理静态资源请求.动态请求转发到Tomcat Tomcat:处理Ng ...

最新文章

  1. 统计简单学_常用统计量
  2. java 变量 动态类型_Java:如何将变量从一种类型动态转换为另一种类型?
  3. 在jupyter中使用matlab
  4. ios浏览器不支持onblur事件
  5. 栈、堆、静态存储区和程序的内存布局
  6. 【队列】Team Queue(luogu-UVA540/poj 2259)
  7. Vue刷新页面有哪几种方式
  8. mysql 数据库表锁死_mysql 数据库表被锁住了_Mysql数据库表锁死如何处理?
  9. Qt文档阅读笔记-QUdpSocket基本表述及简单实现
  10. SQL查找是否“存在“,别再count了!
  11. CF Round #580(div2)题解报告
  12. u盘启动盘安装centos7.5操作系统
  13. kinect体感绿幕抠像,AR虚拟互动拍照,体感抠像拍照
  14. 华为asph是什么型号_华为手机各系列有什么区别 华为手机各系列介绍
  15. kettle连接mysql 8.0以上数据库所需驱动包
  16. 吵翻了!导师确认录取后却被学生放了鸽子,生气之余导师建了个“失信名单”挂到网上
  17. javascript如何获取request中的数据
  18. CentOS 安装 kafka 扩展
  19. 混合波束成形matlab,探索 5G 系统的混合波束成形架构
  20. 软考中级怎么选?如何备考?

热门文章

  1. 启动NASA“造导弹”,阿里为何要“上天”?
  2. 解决左下角没有显示桌面图标
  3. Linux命令——cut命令学习
  4. IDC分析报告:亚洲安全软件市场兴旺
  5. 中国股市悬着四把利剑
  6. 样条表示---插值和逼近样条
  7. FastDFS 学习笔记
  8. saltstack 任务管理和集群(三)
  9. 分享一个非常全的php正则验证车牌格式的函数
  10. Unity物理投射相关问题整理