Loading [MathJax]/jax/output/CommonHTML/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SpringCloud+Nacos实现服务配置中心(Hoxton版本)

SpringCloud+Nacos实现服务配置中心(Hoxton版本)

作者头像
程序员的时光001
发布于 2021-04-23 05:17:55
发布于 2021-04-23 05:17:55
1.3K00
代码可运行
举报
文章被收录于专栏:程序员的时光程序员的时光
运行总次数:0
代码可运行

优质文章,第一时间送达

作者 | 悬铃木pp

来源 | urlify.cn/7BJV3a

关于 Nacos Spring Cloud 的详细文档请参看:Nacos Config和Nacos Discovery。

通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。

通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。

前提条件

首先下载安装一个nacos server,然后启动nacos server。下载和安装流程查看https://www.cnblogs.com/ying-z/p/14630738.html

新建配置

可以通过两种方式新建配置。

方式一:访问Nacos Server页面手动创建。

首先登录Nacos Server,地址一般为http://127.0.0.1:8848/nacos/index.html。

然后进入配置列表,点击新增配置按钮,进入新增配置页面。

注意:

这里我创建Data Id为nacos-config.properties的配置文件,其中Group为默认的DEFAULT_GROUP,配置文件的格式也相应的选择Properties,配置内容中添加配置nacos.config=hello_nacos,如图所示。

方式二:通过调用Nacos Open API向Nacos Server发布配置:dataId为nacos-config.properties,内容为nacos.config=hello_nacos

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos-config.properties&group=DEFAULT_GROUP&content=nacos.config=hello_nacos"

创建服务应用

(1)使用SpringBoot,创建一个名为nacos-config的子工程。

(2)pom.xml文件添加如下依赖。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencyManagement>
    <dependencies>
      <!-- 声明Spring cloud的版本为Hoxton.SR3-->
      <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版本为2.1.0.RELEASE -->
      <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>
<dependencies>
    <!-- 声明nacos-discovery依赖 -->
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <!-- 声明nacos-config依赖 -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
</dependencies>

备注:如果不需要注册该服务,也可以去掉nacos-discovery依赖。

注意:版本2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

更多版本对应关系参考:版本说明 Wiki

(3)修改application.properties添加相关配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server.port=9002
spring.application.name=nacos-config
spring.application.cloud.nacos.discovery.server-addr=127.0.0.1:8848

(4)创建配置文件,文件名为bootstrap.properties。并在bootstrap.properties中配置Nacos server的地址和应用名。

注意:文件名是bootstrap.xxx,而不是application或者其他。因为Nacos同Spring Cloud Config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。SpringBoot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application。

这里的配置文件类型可以根据个人习惯选择,我这里用的时properties类型,配置内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#服务名称
spring.application.name=nacos-config
#指定注册中心的地址。如果你不需要注册该服务,也可以去掉该项,并删除discovery依赖。
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#指定配置中心的地址。
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#指定配置中心中配置文件的格式。
#spring.cloud.nacos.config.file-extension=properties

之所以需要配置spring.application.name,是因为它是构成Nacos配置管理dataId字段的一部分。

在Nacos-Server配置管理,其中Data ID它的定义规则是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${prefix}-${spring.profile.active}.${file-extension}

prefix:默认为spring.application.name的值,也可以通过配置项spring.cloud.nacos.config.prefix来配置。

spring.profile.active:即为当前环境对应的profile,详情可以参考 Spring Boot文档。可以通过配置项spring.profile.active来配置。当spring.profile.active为空时,对应的连接符 - 也将不存在,dataId的拼接格式变成 {file-extension}。

file-exetension:为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension来配置。目前只支持properties和yaml类型。

(5)创建对外接口ConfigController,从nacos中读取配置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RefreshScope
@RestController
public class ConfigController {
    @Value("${nacos.config}")
    private String configValue;

    @RequestMapping("/config/get")
    public String get() {
        return configValue;
    }
}

@RefreshScope:Spring Cloud的原生注解,可以使当前类下的配置支持动态更新。

@Value:通过@Value注解,去读取key为nacos.config的配置的值,并通过/config/get接口返回。

到此代码部分的工作已经完成。

启动服务进行测试

(1)保证Nacos-Server已经启动。

(2)检查Nacos-Server中配置列表中是否已经添加相应的配置文件。

(3)启动nacos-config项目。

(4)启动成功后在Nacos控制台中可以看到我们注册的服务。

(5)此时调用接口进行测试http://127.0.0.1:9002/config/get,可以看到返回结果。

此时说明已经成功读取到配置。

(6)下面我将Nacos-Server上的配置修改为hello_lars,看看能否动态更新。修改Nacos-Server上的配置后,刷新http://127.0.0.1:9002/config/get页面,结果更新为新的配置了。

可以看到我通过Nacos-server的控制台进行配置的修改,客户端服务nacos-config也相应的进行热更新。


我是【程序员二胡】,热爱技术分享,信仰终身学习,爱运动旅游,也是一个萌新up主,我们下期再见!

感谢点赞支持下哈

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的时光 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringCloud集成Nacos实现服务发现和配置管理
本章节我通过在SpringCloud中写服务者(Provider,端口:9001)、消费者(Consumer,端口:9002),来演示服务发现。
麦洛
2021/03/23
1.9K0
SpringCloud集成Nacos实现服务发现和配置管理
SpringCloud Alibaba Nacos 服务注册和配置中心
前四个字母分别为 Naming 和 Configuration 的前两个字母,最后的 s 为 Service。
OY
2022/03/17
7970
SpringCloud Alibaba Nacos 服务注册和配置中心
SpringCloud--alibliba--Nacos--上
https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now
大忽悠爱学习
2021/12/07
7590
SpringCloud--alibliba--Nacos--上
Nacos作为配置中心
新建module:cloudalibaba-config-nacos-client3377
一个风轻云淡
2022/11/13
7620
Nacos作为配置中心
Nacos 服务发现、配置管理和服务管理平台
据说Nacos在阿里巴巴内部有超过10万的实例运行,已经过了类似双十一等各种大型流量的考验。
用户9615083
2022/12/25
1.2K0
Nacos 服务发现、配置管理和服务管理平台
【微服务~Nacos】Nacos之配置中心
👀专栏介绍 【微服务~Nacos】 目前主要更新微服务,一起学习一起进步。 👀本期介绍 本期主要介绍微服务~Nacos 文章目录 搭建服务 创建服务 查询服务 整合知多少 nacos配置文件加载顺序 搭建服务 项目名:nacos-config-2.1 添加坐标: <dependencies> <!-- web 启动器 --> <dependency> <groupId>org.springframework.boot</groupId>
陶然同学
2023/02/27
2.8K0
【微服务~Nacos】Nacos之配置中心
一文读懂Nacos注册中心
—般来说,如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模式。当前主流的服务如Spring cloud和Dubbo服务,都适用于AP模式,AP模式为了服务的可能性而减弱了一致性,因此AP模式下只支持注册临时实例。
Blue_007
2023/11/02
1.4K0
一文读懂Nacos注册中心
Nacos服务注册和配置中心
下面的项目是 SpringBoot2.2.2 + springcloud-alibaba 2.1.0
CBeann
2023/12/25
2790
Nacos服务注册和配置中心
基于Nacos的服务治理、配置中心
参看《基于Docker搭建Nacos集群》:https://lupf.cn/articles/2020/05/21/1590058654840.html ;亦或者通过官方提供的其他方式安装,详情参考:https://nacos.io/zh-cn/docs/quick-start.html
一行Java
2022/04/06
8020
基于Nacos的服务治理、配置中心
Nacos作为服务配置中心实战
  Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取, 拉取配置之后,才能保证项目的正常启动。
别团等shy哥发育
2023/02/25
8450
Nacos作为服务配置中心实战
SpringBoot 集成 Nacos 配置中心
一个配置文件就是一个配置集,建议设定为模块名! 配置中对应:spring.application.name
收心
2022/01/19
7020
SpringBoot 集成 Nacos 配置中心
Spring Cloud整合Nacos实现服务注册发现
4.通过调用Nacos Open API向Nacos Server发布配置:dataId 为demo.properties,内容为useLocalCache=true
故里
2020/11/25
1.2K0
Spring Cloud整合Nacos实现服务注册发现
使用Nacos作为配置中心(四)
通过之前文章的学习我们已经学会了使用Nacos完成服务的注册与发现。同时也介绍了Spring Cloud中不同风格的服务消费方式。接下来,我们再来学习下Nacos的另一个重要功能:配置管理
用户1212940
2022/04/13
1.4K0
使用Nacos作为配置中心(四)
nacos 服务注册与配置中心
启动服务之后,访问 http://localhost:8848/nacos/#/serviceManagement 即可看到以下信息:
wsuo
2020/10/10
6870
nacos 服务注册与配置中心
使用Nacos做为SpringCloud的注册中心
【转载请注明出处】:https://cloud.tencent.com/developer/article/1642606
后端老鸟
2020/06/11
6430
使用Nacos做为SpringCloud的注册中心
Spring Cloud 整合 nacos 实现动态配置中心
上一篇 Spring Cloud 微服务实战——nacos 服务注册中心搭建(附源码) 讲解了Spring Cloud 整合 nacos 实现服务注册与发现,nacos除了有服务注册与发现的功能,还有提供动态配置服务的功能。本文主要讲解Spring Cloud 整合nacos实现动态配置服务。主要参考官方部署手册点我。
用户10384376
2023/02/26
1.2K0
Spring Cloud 整合 nacos 实现动态配置中心
什么是Nacos及实战使用教程
注册中心加配置中心的集合体,Nacos提供了统一配置管理、服务发现与注册。 其中服务注册和发现的功能,相当于dubbo里面使用到的zookeeper、 或者spring cloud里面应用到的consoul以及eureka。
向着百万年薪努力的小赵
2022/12/02
5880
什么是Nacos及实战使用教程
云原生之快速使用Nacos Spring Cloud
本文主要面向 Spring Cloud 的使用者,通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务注册发现。
一个风轻云淡
2022/11/15
3990
云原生之快速使用Nacos Spring Cloud
Nacos整合SpringCloud(配置中心、注册中心)[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 1.什么是Nacos? Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 2.Nacos Config整合 Nacos Config Starter实现Spring Cloud应用程序的外部化配置。 2.1 启动 Nacos Server 并添加配置 1.下载地址: 直接下载:Nacos Server 下载页 源码构建:Github 项目页面 2.启动 Linux/Unix/Mac 操作系统
全栈程序员站长
2022/09/06
7K0
Nacos整合SpringCloud(配置中心、注册中心)[通俗易懂]
Java微服务新生代Nacos之配置管理
在上文 Java 微服务新生代之 Nacos 已经介绍了微服务框架 Nacos 以及它在服务注册与发现的功能,本文将主要介绍它的另一强大功能:配置管理,学习利用 Nacos 如何实现通过统一的管理界面,集中化实现分布式服务的配置维护和实时更新。
闻人的技术博客
2019/09/19
1.5K0
Java微服务新生代Nacos之配置管理
相关推荐
SpringCloud集成Nacos实现服务发现和配置管理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验