SpringCloud学习(四)整合Nacos实现配置中心

2023-04-26 10:37:26

一、为什么选用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}
  1. prefix 默认spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置

  2. file-extension默认properties,比如我这里使用的是yaml,那么更改spring.cloud.nacos.config.file-extension= yaml

  3. 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方便了很多…

  • 作者:jcpp9527
  • 原文链接:https://blog.csdn.net/wqc19920906/article/details/123953311
    更新时间:2023-04-26 10:37:26