当前位置:网站首页>Nacos配置中心
Nacos配置中心
2022-07-30 03:25:00 【Leon_Jinhai_Sun】
前面我们学习了SpringCloud Config,我们可以通过配置服务来加载远程配置,这样我们就可以在远端集中管理配置文件。
实际上我们可以在bootstrap.yml
中配置远程配置文件获取,然后再进入到配置文件加载环节,而Nacos也支持这样的操作,使用方式也比较类似,比如我们现在想要将借阅服务的配置文件放到Nacos进行管理,那么这个时候就需要在Nacos中创建配置文件:
将借阅服务的配置文件全部(当然正常情况下是不会全部CV的,只会复制那些需要经常修改的部分,这里为了省事就直接全部CV了)复制过来,注意Data ID的格式跟我们之前一样,应用名称-环境.yml
,如果只编写应用名称,那么代表此配置文件无论在什么环境下都会使用,然后每个配置文件都可以进行分组,也算是一种分类方式:
完成之后点击发布即可:
然后在项目中导入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
接着我们在借阅服务中添加bootstrap.yml
文件:
spring:
application:
# 服务名称和配置文件保持一致
name: borrowservice
profiles:
# 环境也是和配置文件保持一致
active: dev
cloud:
nacos:
config:
# 配置文件后缀名
file-extension: yml
# 配置中心服务器地址,也就是Nacos地址
server-addr: localhost:8848
现在我们启动服务试试看:
可以看到成功读取配置文件并启动了,实际上使用上来说跟之前的Config是基本一致的。
Nacos还支持配置文件的热更新,比如我们在配置文件中添加了一个属性,而这个时候可能需要实时修改,并在后端实时更新,那么这种该怎么实现呢?我们创建一个新的Controller:
@RestController
public class TestController {
@Value("${test.txt}") //我们从配置文件中读取test.txt的字符串值,作为test接口的返回值
String txt;
@RequestMapping("/test")
public String test(){
return txt;
}
}
我们修改一下配置文件,然后重启服务器:
可以看到已经可以正常读取了:
现在我们将配置文件的值进行修改:
再次访问接口,会发现没有发生变化:
但是后台是成功检测到值更新了,但是值却没改变:
那么如何才能实现配置热更新呢?我们可以像下面这样:
@RestController
@RefreshScope //添加此注解就能实现自动刷新了
public class TestController {
@Value("${test.txt}")
String txt;
@RequestMapping("/test")
public String test(){
return txt;
}
}
重启服务器,再次重复上述实验,成功。
边栏推荐
猜你喜欢
HCIP实验(05)OSPF综合实验
JUC(五):共享带来的问题
leetcode 5 questions a day-Day01
Public chains challenging the "Impossible Triangle"
复合类型--引用,指针
JUC(七):变量的线程安全分析
【基于RT-Thread+RA6M4的智能鱼缸系统设计之鱼我所欲也】
1050 graphics card, why is the graphics card usage ranking on Steam always the top five
The speed of life and death, every second counts
一本通1922——乒乓球
随机推荐
动态绑定href url
LeetCode 114. 二叉树展开为链表(一题三吃)
【SQL】按某个关联列用一张表的数据更新另一张表
解决导航栏变黑色
FreeRTOS个人笔记-内存管理
JUC (8) : synchronized little exercise
力扣(LeetCode)210. 课程表 II(2022.07.29)
自定义 View 实现汉字笔顺动画
sublime text 3 设置
NLP自然语言处理(二)
One book 1922 - table tennis
朴素贝叶斯分类
B. Inflation-Educational Codeforces Round 103 (Rated for Div. 2)
[Flink] How to determine the cluster planning size from development to production launch?
un7.29:Linux——centos中如何安装与配置redis?
Open address method hash implementation - secondary detection method
Ansible introduction (detailed) features + advantages + design concept + application field + system architecture + working principle + task execution process
QT基础第三天(3)widget,dialog和mainwindow
The most important transport layer
MySQL之数据查询(分类汇总与排序)