SpringCloud|《微服务系列(Nacos服务配置中心》)

说在前头:本人为大二在读学生,书写文章的目的是为了对自己掌握的知识和技术进行一定的记录,同时乐于与大家一起分享,因本人资历尚浅,能力有限,文章难免存在一些错漏之处,还请阅读此文章的大牛们见谅与斧正。若在阅读时有任何的问题,也可通过评论提出,本人将根据自身能力对问题进行一定的解答。

前言 本篇文章我们将讲述Nacos的服务配置中心,在使用Nacos的服务配置中心前,您需要对Nacos的服务注册中心有一定的了解,如果您对想了解Nacos的服务注册发现中心,可查看往期的文章《微服务系列:Nacos服务注册发现中心》
对于服务配置中心组件,在SpringCloud中也有优秀的配置中心组件SpringCloudConfig,我们在前面的文章中也有提及,如果你想了解SpringCloudConfig,可查看往期的文章《微服务系列:SpringCloudConfig配置中心》

启动nacos-server 使用命令startup.cmd -m standalone以单机部署的方式启动nacos-server。(启动成功如下图)
SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片


创建nacos-client 我们需要创建一个nacos客户端来测试配置中心,具体步骤如下:
①依赖配置:
Bosen com.bosen.www 1.0-SNAPSHOT 4.0.0 ? nacos-client ? com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery 2.1.0.RELEASE com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 2.1.0.RELEASE org.apache.httpcomponents httpclient 4.5.6 org.springframework.boot spring-boot-starter-web 2.1.0.RELEASE

②启动类:
package com.bosen.nacos.client; ? import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; ? @SpringBootApplication @EnableDiscoveryClient public class NacosClientApplication { public static void main(String[] args) { SpringApplication.run(NacosClientApplication.class, args); } } ?

③配置文件:
spring: application: name: nacos-client cloud: nacos: discovery: server-addr: 127.0.0.1:8848 # 服务注册中心地址 config: server-addr: 127.0.0.1:8848 # 服务配置中心地址 file-extension: yml

④编写一个控制器:
package com.bosen.nacos.client.controller; ? import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; ? @RestController public class IndexController { ? @Value("${author}") String author; ? @RequestMapping("/") public String index() { return "Author is " + author; } } ?

⑤nacos-client保存在nacos-config中的配置文件:nacos-config对于配置文件的匹配,根据${spring.application.name}-${profiles}.yml的方式匹配,因为现在为测试阶段我们没有添加开发环境参数,因此配置文件命名为${spring.application.name}.yml即可。(访问http://localhost:8848/,输入用户名密码nacos进入,具体流程如下图)
SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片

SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片

SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片

SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片

SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片

⑥启动nacos-client:(启动成功如下图)
SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片

⑦查看服务是否读取了配置中心上的配置文件:(查看日志信息,可以看到,程序启动时,已经成功读取了配置中心的配置文件)
SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片


Nacos配置动态刷新 nacos的配置文件是支持动态刷新的,只需要在对应的获取配置信息的类上添加注解@RefreshScope即可,如下修改之前编写的控制器(为控制器IndexController添加注解@RefreshScope,修改完后重启nacos-client)
package com.bosen.nacos.client.controller; ? import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; ? @RefreshScope// 开启动态更新 @RestController public class IndexController { ? @Value("${author}") String author; ? @RequestMapping("/") public String index() { return "Author is " + author; } }

现在我们来访问nacos-client路径为“/”的控制器http://localhost:8001/(显示页面如下)
SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片

修改配置文件nacos-client.yml,将author从Bosen,修改为Bosen_once(如下)
SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片

SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片

SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片

SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片

修改好配置文件后,我们再次访问http://localhost:8001/,页面信息如下,说明动态修改配置信息成功。
SpringCloud|《微服务系列(Nacos服务配置中心》)
文章图片


总结 【SpringCloud|《微服务系列(Nacos服务配置中心》)】此篇文章,主要讲述了nacos的配置中心的使用流程以及使用配置中心实现配置文件的统一管理,并且运用nacos-config的强大功能,实现配置文件的动态更新。

    推荐阅读