一、为什么选用Nacos做配置中心
二、整合Nacos做配置中心
项目整合基于SpringCloud学习(一)创建springcloud微服务的基础子服务
1. 完善feign-provider项目
1. 在pom.xml 增加nacos 配置中心依赖
<!-- nacos-config 依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2. 新增项目配置文件bootstrap.yml指定nacos配置文件名
注意:
注意这里使用bootstrap.yml而非application.yml,避免applicaton.yml后加载的时候被nacos配置覆盖,也需要把application.yml中不会变化的也移到bootstrap.yml中。
SpringBoot读取配置文件顺序:
bootstrap.yml>bootstrap.yaml>bootstrap.properties>nacos的配置>application.yml>application.yaml>application.properties
bootstrap.yml内容如下:
spring:
application:
name: feign-provider-8081
cloud:
nacos:
discovery:
server-addr: http://localhost:8848
config:
file-extension: yaml # 必须修改成yaml
group: DEFAULT_GROUP # 缺省即可
prefix: feign-provider # 缺省即可
3. 打开nacos管理控制台添加配置
Data ID的格式为:
${prefix}-${spring.profiles.active}.${file-extension}
-
prefix 默认spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置
-
file-extension默认properties,比如我这里使用的是yaml,那么更改spring.cloud.nacos.config.file-extension= yaml
-
Group默认DEFAULT_GROUP,也可以通过配置项 spring.cloud.nacos.config.group来配置
4. 添加接口来测试读取配置信息,并添加动态刷新配置的注解@RefreshScope
@RefreshScope
@RestController
@RequestMapping("/oauth")
public class VerifyController {
@Value("${rsa.publicKey}")
public String publicKey;
@GetMapping("/publicKey")
public Result getPublicKey(){
return Result.success(this.publicKey);
}
}
5. 启动服务后第一次读取配置信息
6. 在nacos配置中修改publicKey的值为888888,然后发布
再请求下。
三、总结
相较于eureka整合SpringCloud Config方便了很多…