vlambda博客
学习文章列表

Nacos Config 微服务配置中心

Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。

Spring Cloud Alibaba Nacos Config 可以在 Nacos Server 集中管理 Spring Cloud 应用的外部属性配置

本文介绍Nacos Config的使用和Spring Cloud应用的属性外部化配置。Nacos既作为注册中心,同时也是配置中心


1、创建maven工程service-config

在IDEA中创建maven工程service-config

1.1 pom.xml文件的主要内容如下
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-boot.version>2.2.5.RELEASE</spring-boot.version> <spring-cloud.version>Hoxton.SR4</spring-cloud.version> <spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version></properties>
<dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency></dependencies>
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins></build>
1.2 SpringBoot主类
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication@EnableDiscoveryClientpublic class RegisterApplication {
public static void main(String[] args) { SpringApplication.run(RegisterApplication.class, args); }}
1.3 Controller类
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication@EnableDiscoveryClientpublic class RegisterApplication {
public static void main(String[] args) { SpringApplication.run(RegisterApplication.class, args); }}
1.4 application.properties
server.port=4010spring.application.name=service-configspring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

2、运行程序

2.1 启动Nacos

从https://github.com/alibaba/nacos/releases 下载最新版的nacos(本文使用1.2.1),下载后解压缩,单机模式运行Nacos:

Windows下双击bin目录下的 startup.cmd

Linux下在bin目录下执行 sh startup.sh -m standalone

Nacos的具体介绍可参见文章

2.2 运行SpringCloud服务

在IDEA左侧导航栏右键菜单选择 Maven > Reimport 刷新Maven配置,点击工具栏上的运行按钮,即可运行SpringBoot程序

Nacos Config 微服务配置中心

程序运行起来后,登录Nacos http://localhost:8848/nacos,访问服务管理>服务列表可看到service-config已经注册到了Nacos中

Nacos Config 微服务配置中心

访问http://localhost:4010/config/get 页面显示false,如下图:

Nacos Config 微服务配置中心

false是从程序默认值中获取到的,下面介绍通过Nacos的外部配置来改变useLocalCache的值

3、属性外部化配置

3.1 属性外部配置

访问Nacos左侧导航“配置管理>配置列表”,点击最右侧的“+”

Nacos Config 微服务配置中心

跳转到新建配置页面,如下图:

Data ID输入service-config.propertiess,配置格式选择properties,配置内容填写 useLocalCache=true,然后点击底部的发布按钮,页面提示新建的配置。

3.2 验证属性变化

重新访问 http://localhost:4010/config/get 显示true,说明属性外部化配置成功,如下图:

获取本文代码可访问:https://github.com/morethank-projects/spring-cloud-alibaba.git

本文内容到此结束。