系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、nacos配置管理
- 二、使用步骤
-
- 三、配置实时刷新
- 总结
前言
接上篇,本篇记录Nacos的配置管理
所有的代码都是基于前篇的基础上
一、nacos配置管理
微服务架构中有很多服务,一个服务就对应了一个配置文件,当服务变多时,通过一个个yml配置文件去管理,往往变得很麻烦,需要开发人员一一寻找,维护性变差,此时就需要我们通过Nacos去统一的管理配置。这样做的好处是我们的配置不用写在项目中,实现集中化的管理,方便环境的变更。
二、使用步骤
1.基本配置
在springcloud-alibaba-microservice-gateway-9090(网关)和springcloudalibaba-micro-service-consumer-8080(服务消费方)工程中都导入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 手动在桌面创建文件夹,命名为:micro-service-gateway
然后把springcloud-alibaba-microservice-gateway-9090网关工程中的application.yml中的中文注释都删了再拷贝过去,
修改名称为:micro-service-gateway-dev.yml,
然后再复制一份,命名改为:micro-service-gateway-test.yml,
修改micro-service-gateway-test.yml中的内容,使其和micro-service-gateway-dev.yml文件的内容略有不同即可,
比如:修改micro-service-gateway-test.yml 端口号为9091。 - 同样类似的方式,对springcloudalibaba-micro-service-consumer-8080工程中的application.yml也执行一遍。
- 最后,分别对micro-service-gateway和micro-service-consumer两个文件夹打成zip压缩包文件,一会要导入到nacos中使用。
完成后大概如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/59b615ae35794504851565c68d0b5bfd.png)
然后打成zip压缩文件
在springcloud-alibaba-microservice-gateway-9090(网关)和springcloudalibaba-micro-service-consumer-8080(服务消费方)工程中都配置bootstrap.yml,内容如下:(group和name对应的值最好和刚才桌面上创建文件夹的名称一致),然后把两个工程中原来的application.yml命名为application.yml.bak
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
group: micro-service-gateway
application:
name: micro-service-gateway
profiles:
active: dev
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
group: micro-service-consumer
application:
name: micro-service-consumer
profiles:
active: dev
目录结构如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/a8dd085aea9e41e0bbb5d1909cff155a.png)
2.导入Nacos配置
在Nacos管理界面,将上一步打好的zip压缩包导入
![在这里插入图片描述](https://img-blog.csdnimg.cn/83cb172c9ffb4c31bda4c0f4ccb001a7.png)
重启网关和消费方服务
- 配置 active: dev 则显示nacos中对应 *-dev.yml配置文件中的内容;
- 配置 active: test则显示nacos中对应 *-test.yml配置文件中的内容;
三、配置实时刷新
在Controller中添加方法并测试,修改springcloudalibaba-micro-consumer-8080中FeignUserController,在FeignUserController上添加实时刷新注解@RefreshScope
@RefreshScope
@RestController
@RequestMapping("feign")
public class UserFeignController {
@Value("${user.username}")
private String username;
@RequestMapping("getUserName")
public String getUserName(){
return username;
}
在nacos面板中修改对应加载的microservice-consumer-test.yml,设置user.username的值为张三
![在这里插入图片描述](https://img-blog.csdnimg.cn/50f67e9d47554f8dbc52e43ab9a219df.png)
启动springcloudalibaba-micro-consumer-8080工程,访问getUsername方法测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/16b592a3124c415a8e8fbfb392ea74d3.png)
然后,在Nacos配置中,修改consume-dev文件中的张三为大飞,发布后再次访问方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/8d00aa2c4f2c4cfaac3a1b797f61099f.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/5ae2c30f5fbe4020966b770ee329e248.png)
不需要重启服务,再次访问:
![在这里插入图片描述](https://img-blog.csdnimg.cn/5ffe07e9ff0941989d29d3b2c452f3bb.png)
实时更新完毕!
总结
本篇主要记录了Nacos的配置管理,更多内容见下篇
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)