美文网首页SpringCloud_Alibaba
九、通过Nacos进行服务配置

九、通过Nacos进行服务配置

作者: 轻轻敲醒沉睡的心灵 | 来源:发表于2020-12-15 20:44 被阅读0次

Nacos服务注册发现参考:https://www.jianshu.com/p/ba298e0a2eab

1. 服务中引入Nacos配置包

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2. 本地bootstrap.yml(bootstrap.properties)增加配置

# spring
spring: 
  profiles:
    active: dev
  # 服务名称必须带上,不然nacos服务列表中没有,也不会有注册成功的信息
  application:
    name: car-management-service-dict
  cloud:
    nacos:
      # 服务注册发现
      discovery:
        server-addr: www.baidu.com:8848
      # 服务配置
      config:
        server-addr: www.baidu.com:8848
        file-extension: yaml

3. 在nacos中添加配置

Nacos新增配置图
    1. Data ID命名规则:${prefix}-${spring.profiles.active}.${file-extension}
    • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置
    • spring.profiles.active 即为当前环境对应的 profile,在bootstrap.yml中配置:详情可以参考 Spring Boot文档注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
    • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 propertiesyaml 类型
    1. Group可以使用默认的,也可以自定义,但是要和bootstrap.yml中的group一致,(若有gateway网关服务,gateway服务必须要和其他微服务在同一组,才能找到路由地址
    1. 选好格式,记得Data ID中要有这个格式
    1. 填写配置信息

4. 配置自动更新

使用Spring Cloud 原生注解 @RefreshScope,这样通过@Value注解取到的值是更新过的(@ConfigProperties注解不是)

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

  @Value("${useLocalCache:false}")
  private boolean useLocalCache;

  @RequestMapping("/get")
  public boolean get() {
      return useLocalCache;
  }
}

相关文章

网友评论

    本文标题:九、通过Nacos进行服务配置

    本文链接:https://www.haomeiwen.com/subject/hxyswktx.html