目录
prod是我自定义的一个命名空间,在这里面进行配置文件编写~
[编辑 配置文件热更新](#编辑 配置文件热更新)
从本篇博文开始的后几篇都是有关微服务的学习,本博主最近刚学完微服务想记录一下自己的学习情况,因此接下来的几篇文章都是根据我的项目实际而言的,希望也能帮助到各位~
这篇文章现代大家简单的了解nacos是干嘛的以及在项目中如何进行使用~
什么是nacos
Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查,Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。简单来说nacos就是注册服务用的。 具体解释请看官网文档:Nacos 架构
由于刚开始接触,所以我们这里不讲太多原理,先来搞清楚怎么使用,接下来我将默认你的电脑中已经有了nacos且已经启动,没有的请看下面这篇文章:nacos下载(详解版)
项目在nacos上进行注册
注入nacos依赖
java
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
配置application.yml文件
其中server-addr后面的地址是我本地的nacos地址,如果你的nacos是安装在linux上面的就写上你linux的ip。
以上就是配置nacos的具体过程,还是很简单的是吧~
当然,如果你要实现在nacos配置配置文件,也是可以的~
nacos写入配置文件
首先,还是需要导入依赖
java
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.1</version>
</dependency>
<!-- nacos配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--nacos的管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.0.5.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
然后在nacos中编写配置文件
prod是我自定义的一个命名空间,在这里面进行配置文件编写~
以上部分分别是nacos里面和我的idea里面对应的配置截图,其中每一个箭头对应的部分必须一致,不然很可能会找不到你在nacos中配置的文件信息,当然nacos的Data ID明明是有一定规则的,名字默认为:{prefix}-{spring.profiles.active}.${file-extension}
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置(即配置在nacos上的服务名)。
spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {prefix}.{file-extension}
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
启动类上加上注解
编写PatternParameter类
其中的prefix="pattern"是我们在nacos的配置文件中的配置的前缀
然后再控制器中我们使用@Autowired注解注入这个类就可以进行使用啦~
配置文件热更新
当然,我们可能会时不时修改配置文件,但是修改后需要重启项目,对于部署在服务器上的项目而言是行不通的,所以我们需要对配置文件进行热更新,具体做法如下:
没错,只需要加入@RefreshScope注解就可以啦~