SpringBoot使用Nacos配置中心的实现

本文介绍SpringBoot如何使用阿里巴巴Nacos做配置中心。

1.Nacos简介

Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计。它可以帮助您轻松构建云本机应用程序和微服务平台。

Nacos基本上支持现在所有类型的服务,例如,Dubbo / gRPC服务,Spring Cloud RESTFul服务或Kubernetes服务。

尤其是使用Eureka注册中心的,并且担心Eureka闭源的开发者们,可以将注册中心修改为Nacos,本文主要介绍Nacos配置中心的使用。

Nacos官网如下图所示,官网地址https://nacos.io/zh-cn/

2.Nacos安装

Nacos安装可以采用如下两种方式:

  • 1.官网下载稳定版本解压使用。
  • 2.下载源代码编译使用,目前最新的版本是0.8.0版本。

本文简单介绍一下第二种方式,到Nacos的稳定版本下载地址https://github.com/alibaba/nacos/releases,下载最新版,本文下的是tag.gz文件,下载后解压即安装完成,然后进入解压目录后的bin目录执行如下命令启动Nacos。

sh startup.sh -m standalone

启动可以看到控制台如图所示,端口号是8848(好像是因为珠穆朗玛峰的高度),版本0.8.0等等信息。

3.SpringBoot使用Nacos

接下来,创建项目,项目中加入使用Nacos配置中心的依赖nacos-config-spring-boot-starter,完整pom文件如代码所示。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.1.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.dalaoyang</groupId>
	<artifactId>springboot2_nacos_config</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springboot2_nacos_config</name>
	<description>springboot2_nacos_config</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.alibaba.boot/nacos-config-spring-boot-starter -->
		<dependency>
			<groupId>com.alibaba.boot</groupId>
			<artifactId>nacos-config-spring-boot-starter</artifactId>
			<version>0.2.1</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

配置文件中需要配置Nacos服务的地址,如下所示。

spring.application.name=springboot2-nacos-config
nacos.config.server-addr=127.0.0.1:8848

在启动类,加入@NacosPropertySource注解其中包含两个属性,如下:

  • dataId:这个属性是需要在Nacos中配置的Data Id。
  • autoRefreshed:为true的话开启自动更新。

在使用Nacos做配置中心后,需要使用@NacosValue注解获取配置,使用方式与@Value一样,完整启动类代码如下所示。

package com.dalaoyang;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@NacosPropertySource(dataId = "springboot2-nacos-config", autoRefreshed = true)
@RestController
public class Springboot2NacosConfigApplication {

	public static void main(String[] args) {
		SpringApplication.run(Springboot2NacosConfigApplication.class, args);
	}

	@NacosValue(value = "${nacos.test.propertie:123}", autoRefreshed = true)
	private String testProperties;

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

由于本文只是简单示例使用Nacos做配置中心,所以将启动类加了一个MVC方法,作为输出配置信息进行测试,这个测试的配置给了一个默认值123,启动项目,访问http://localhost:8080/test,可以看到如下所示:

4.使用Nacos修改配置

访问Nacos服务,http://localhost:8848/nacos/#/login,默认情况用户名密码都是nacos,登录页如图所示。

登录后如图所示。

接下来点击右侧加号,添加我们刚刚创建的data id 的服务,并将配置由123修改为111,如图所示。

然后点击右下角发布按钮,再次访问http://localhost:8080/test如图所示。

到这里SpringBoot使用Nacos配置中心就完成了,感兴趣可以查看源码仔细研究。

到此这篇关于SpringBoot使用Nacos配置中心的实现的文章就介绍到这了,更多相关SpringBoot Nacos配置中心内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot集成Nacos的详细教程

    一.环境说明 1.CentOS7 2.Jdk1.8 3.Mysql5.7 4.Nacos1.3 5.SpringBoot2.3.1.RELEASE 6.Maven3.6 二.下载Nacos 1.Nacos官网:https://nacos.io/zh-cn/index.html 2.Nacos下载地址:https://github.com/alibaba/nacos/releases/download/1.3.0/nacos-server-1.3.0.tar.gz 三.解压启动Nacos 1.解压

  • SpringBoot集成nacos动态刷新数据源的实现示例

    前言 因为项目需要,需要在项目运行过程中能够动态修改数据源(即:数据源的热更新).这里以com.alibaba.druid.pool.DruidDataSource数据源为例 第一步:重写DruidAbstractDataSource类 这里为什么要重写这个类:因为DruidDataSource数据源在初始化后,就不允许再重新设置数据库的url和userName public void setUrl(String jdbcUrl) { if (StringUtils.equals(this.jd

  • springboot集成nacos的配置方法

    本文介绍了springboot集成nacos的配置方法,分享给大家,具体如下: nacos仓库:https://github.com/alibaba/nacos nacos介绍文档:https://nacos.io/zh-cn/docs/architecture.html nacos使用例子:https://github.com/nacos-group/nacos-examples springboot配置-集成nacos,例子代码下载 springboot-nacos-consumer spr

  • SpringBoot使用Nacos配置中心的实现

    本文介绍SpringBoot如何使用阿里巴巴Nacos做配置中心. 1.Nacos简介 Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计.它可以帮助您轻松构建云本机应用程序和微服务平台. Nacos基本上支持现在所有类型的服务,例如,Dubbo / gRPC服务,Spring Cloud RESTFul服务或Kubernetes服务. 尤其是使用Eureka注册中心的,并且担心Eureka闭源的开发者们,可以将注册中心修改为Nacos,本文主要介绍Naco

  • nacos配置中心远程调用读取不到配置文件的解决

    目录 nacos配置中心远程调用读取不到配置文件 下面引用官方文档的一段内容 读取不到nacos配置中心内容的坑 这是出错的配置 这是正确的配置 nacos配置中心远程调用读取不到配置文件 1.由于公司要求,对nacos做了命名空间的配置.(这个开始我步入了迷途....) 为了更好的区分配置文件,我们创建了两个命名空间,dev和test,在学习的时候,我们并未创建这些命名空间,所以一直正常使用,创建命名空间后我们无法读取到配置文件. 那么添加命名空间后需要在配置文件中支持命名空间,类似你创建了g

  • Nacos配置中心搭建及动态刷新配置及踩坑记录

    目录 一.Nacos配置中心介绍 二.配置中心搭建 1.配置中心启用 2.创建配置文件 3.工程配置 三.试验结果 四.踩坑经历 五.总结 近期有用到阿里的开源配置中心及注册中心nacos,特此记录并分享一些学习笔记及配置踩坑点. 一.Nacos配置中心介绍 从架构图上可以知道,Nacos提供了两种服务,一种是用于服务注册.发现的Naming Service,一种是用于配置中心.动态配置的Config Service,而他们底层均由core模块来支持. 外层提供OpenAPI供客户端使用,并提供

  • 详解Nacos配置中心的实现

    目录 基础配置 pom文件 YML文件 配置配置中心文件 Nacos中的匹配规则 Nacos作为配置中心-分类配置 Nacos的图形化管理界面 三种方案加载配置 DataID方案 Group方案 Namespace方案 基础配置 新建module:cloudalibaba-config-nacos-client3377 pom文件 版本号已经由父工程控制 <?xml version="1.0" encoding="UTF-8"?> <project

  • 使用Springboot整合Apollo配置中心

    Apollo简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景. 官方网站 https://github.com/ctripcorp/apollo Apollo 环境搭建 详细步骤参见: https://github.com/ctripcorp/apollo/wiki/Quick-Start 官网已经很详细的说明了操作步骤.但是有很多前置条件才能完

  • spring cloud如何集成nacos配置中心

    目录 spring cloud集成nacos配置中心 一.添加依赖 二.添加bootstrap.yml配置文件 三.添加远程配置 nacos作为SpringCloud配置中心 一.背景介绍 二.项目实战 三.总结 spring cloud集成nacos配置中心 一.添加依赖 <properties> <spring-cloud.version>Finchley.RELEASE</spring-cloud.version> <nacos.version>0.9

  • SpringBoot整合Apollo配置中心快速使用详解

    目录 一.简介 二.使用 1. 测试项目搭建 2. Apollo配置中心的配置 3. 项目启动与测试 4.常见整合问题 附录 一.简介 1.Apollo 是什么?Apollo(阿波罗)是携程框架部门研发的分布式配置中心.服务端基于Spring Boot和Spring Cloud开发. 2.为什么要使用Apollo? 安全性:配置跟随源代码保存在代码库中,容易造成配置泄漏 时效性:普通方式配置,修改配置,需要重启服务才能生效 局限性:无法支持动态调整:例如日志开关.功能开关 二.使用 1. 测试项

  • Nacos配置中心集群原理及源码分析

    目录 Nacos集群工作原理 配置变更同步入口 AsyncNotifyService AsyncTask 目标节点接收请求 NacosDelayTaskExecuteEngine ProcessRunnable processTasks DumpProcessor.process Nacos作为配置中心,必然需要保证服务节点的高可用性,那么Nacos是如何实现集群的呢? 下面这个图,表示Nacos集群的部署图. Nacos集群工作原理 Nacos作为配置中心的集群结构中,是一种无中心化节点的设计

  • Spring的@Value如何从Nacos配置中心获取值并自动刷新

    目录 @Value从Nacos配置中心获取值并自动刷新 Nacos属性值自动刷新 1.@NacosValue获取最新值 2.@Value获取最新值 @Value从Nacos配置中心获取值并自动刷新 在使用Nacos作为配置中心时,除了@NacosValue可以做到自动刷新外,nacos-spring-context:0.3.4版本是支持@Value获取Nacos配置中心的值,并动态刷新的,该功能是Spri依靠ngValueAnnotationBeanPostProcessor类来实现: @Ove

  • 阿里面试Nacos配置中心交互模型是push还是pull原理解析

    目录 引言 配置中心 长轮询 Nacos初识 几个概念 客户端源码分析 结束语 引言 对于Nacos大家应该都不太陌生,出身阿里名声在外,能做动态服务发现.配置管理,非常好用的一个工具.然而这样的技术用的人越多面试被问的概率也就越大,如果只停留在使用层面,那面试可能要吃大亏. 比如我们今天要讨论的话题,Nacos在做配置中心的时候,配置数据的交互模式是服务端推过来还是客户端主动拉的? 这里我先抛出答案:客户端主动拉的! 接下来咱们扒一扒Nacos的源码,来看看它具体是如何实现的? 配置中心 聊N

随机推荐