说在前头:本人为大二在读学生,书写文章的目的是为了对自己掌握的知识和技术进行一定的记录,同时乐于与大家一起分享,因本人资历尚浅,能力有限,文章难免存在一些错漏之处,还请阅读此文章的大牛们见谅与斧正。若在阅读时有任何的问题,也可通过评论提出,本人将根据自身能力对问题进行一定的解答。
前言 本篇文章我们将讲述Nacos的服务配置中心,在使用Nacos的服务配置中心前,您需要对Nacos的服务注册中心有一定的了解,如果您对想了解Nacos的服务注册发现中心,可查看往期的文章《微服务系列:Nacos服务注册发现中心》
对于服务配置中心组件,在SpringCloud中也有优秀的配置中心组件SpringCloudConfig,我们在前面的文章中也有提及,如果你想了解SpringCloudConfig,可查看往期的文章《微服务系列:SpringCloudConfig配置中心》
启动nacos-server 使用命令startup.cmd -m standalone以单机部署的方式启动nacos-server。(启动成功如下图)
文章图片
创建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进入,具体流程如下图)
文章图片
文章图片
文章图片
文章图片
文章图片
⑥启动nacos-client:(启动成功如下图)
文章图片
⑦查看服务是否读取了配置中心上的配置文件:(查看日志信息,可以看到,程序启动时,已经成功读取了配置中心的配置文件)
文章图片
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/(显示页面如下)
文章图片
修改配置文件nacos-client.yml,将author从Bosen,修改为Bosen_once(如下)
文章图片
文章图片
文章图片
文章图片
修改好配置文件后,我们再次访问http://localhost:8001/,页面信息如下,说明动态修改配置信息成功。
文章图片
总结 【SpringCloud|《微服务系列(Nacos服务配置中心》)】此篇文章,主要讲述了nacos的配置中心的使用流程以及使用配置中心实现配置文件的统一管理,并且运用nacos-config的强大功能,实现配置文件的动态更新。
推荐阅读
- 中间件|【面朝大厂】面试官(你能说说 Nacos 的实现原理吗())
- #|SpringCloud Alibaba微服务中Nacos的服务注册与发现
- 分布式|基 Spring Boot 2.x 构建的商城系统
- 深入浅出|五分钟带你速通Spring IOC
- leetcode|剑指Offer-40-最小的k个数--topk问题java解法整理
- 轻量级动态线程池才是“王道”()
- CGB2202|CGB2202面向对象第5天
- JVM|何为虚拟机
- JVM|垃圾回收算法