概述
Nacos作为配置中心,跟传统的配置文件不同。它可以实现线上修改配置,实时生效,中间不需要重启任何应用。
知识点
- Nacos通过Namespace、Group、DataID来做多环境配置,他们之间的关系如下
- Namespace主要用来区分部署环境的,比如开发环境dev、测试环境test、生产环境prod,他们之间互相是隔离的。Nacos默认的命名空间是public,不可以编辑,也不可以删除
- Nacos默认的Group是DEFAULT_GROUP,Group可以把不同的微服务划分到同一个分组,例如某电商系统的订单服务、仓储服务、支付服务。
- DataID是具体的微服务实例,通常每个服务对应一个DataID
引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
Controller修改
- 在Controller类上添加注解 @RestController,实现配置的自动更新
- 在Controller定义接口,读取配置项developer.author,以此来验证配置实时更新
@RestController
@RefreshScope
public class HelloController {
@Value("${server.port}")
private String port;
@Value("${developer.author}")
private String author;
@RequestMapping(value = "/echo/{name}", method = RequestMethod.GET)
public String echo(@PathVariable String name){
return "Hello Nacos:" + name +
",Port:" + port +
",author:" + author;
}
}
Nacos配置
在Nacos的菜单 配置管理 -> 配置列表 点击新增,创建新的配置
- Data ID:这里定义为test-provider-config.yaml,完整格式如下
${prefix}-${spring.profiles.active}.${file-extension}
prefix: 默认是spring.application.name值,也可以通过spring.cloud.nacos.config.prefix项进行配置
spring.profiles.active: 即为当前环境对应的profile,注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 $ {prefix}.${file-extension}
file-exetension: 配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型
- 配置格式:这边选择yaml
- 配置内容:把原生产者项目的application.yml拷过来,并添加developer.author测试项
spring:
application:
name: test-provider
cloud:
nacos:
discovery:
server-addr: 192.168.25.131:8848
server:
port: 8010
management:
endpoints:
web:
exposure:
include: "*"
developer:
author: 张三
bootstrap.properties
- 删除生产者工程的application.yml文件,因为我们已经复制到Nacos配置了
- 创建bootstrap.properties,这是SpringBoot工程第一个加载的配置文件。把以下配置复制进去,IP改成自己的就行
spring.application.name=test-provider-config
spring.cloud.nacos.config.server-addr=192.168.25.131:8848
spring.cloud.nacos.config.file-extension=yaml
测试
运行Provider程序,测试接口http://localhost:8010/echo/zhangsan。结果如下,有正确地读到了Nacos配置的developer.author
打开Nacos把刚才的developer.author改成李四,然后点击发布按钮
developer:
author: 李四
再次测试
Nacos配置中心的基本使用就到这里了