使用Nacos作为配置中心
Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,所以他可以作为服务注册中心和配置中心。作为配置中心nacos可以灵活的配置多种环境的参数,使得项目在打包过程中不需要过多的关注目标环境问题,达到项目一次打包,多处运行的目标。下面是一个服务添加配置中心的案例。
Demo
第一步: 打开Nacos管理平台配置列表,点击右侧的"+"号新建配置,新建配置之后点击发布按钮。
配置规则:
- dataId :格式如下 ${prefix} - ${spring.profiles.active} . ${file-extension}
prefix 默认为 spring.application.name 的值 - spring.profiles.active 当前环境对应的 profile
- file-extension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置。 目前只支持 properties 类型。
group 默认DEFAULT_GROUP
当active profile 为空时直接填写 spring.application.name值即可 默认properties
第二步: 在之前的 nacos-provider 服务的服务中,添加配置中心的依赖。
<!--Nacos配置中心依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
第三步: 在配置文件中,指定配置中心的地址。
spring:
application:
name: nacos-consumer
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #注册中心地址
config:
server-addr: 127.0.0.1:8848 #注册中心地址
第四步: 获取配置中心的数据,通过controller地址可以读取
@RestController
@RefreshScope
public class TestController {
@Value("${config.value}")
private String value;
@GetMapping("/echo/getConfig")
public String getConfig() {
return "hello world: " + value;
}
}
第五步: 添加 @RefreshScope注解,在不重新启动项目的情况下,修改配置中心的参数值,可以做到实时刷新。
注意点:
Nacos配置中心的配置项会覆盖在项目中相同键的配置项。