nacos之config详细入门


nacos 官网:https://nacos.io/

使用步骤

1、导入依赖

<!-- 默认父工程引入了springcloud依赖-->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2、在bootstrap.properties中添加配置

或则bootstrap.yml/yaml中
添加 nacos的server地址应用名

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=example

这两步完成之后就可以使用nacos作为配置中心了。
没有配置namespace,默认在public下。
没有配置文件名相关属性,默认配置文件名: ${prefix}-${spring.profiles.active}.${file-extension}
也会读取 ${prefix}.${file-extension} 文件,读取顺序是先读${prefix}.${file-extension}。所以相同配置最终以 ${prefix}-${spring.profiles.active}.${file-extension}中的配置为准。

项目中使用

鉴权

如果nacos开启了鉴权,则需要在配置文件中做以下配置

spring:
  cloud:
    nacos:
      username: nacos
      password: nacos

修改命名空间

例如,一个nacos同时跑开发环境和测试环境,我们就需要不同的命名空间进行区分,不能都放在默认命名空间public中。
首先需要在nacos中创建不同的命名空间,然后将命名空间id配置在配置文件中。

spring:
  cloud:
    nacos:
      config:
        namespace: d0ee46c1-bb2d-4ceb-a0c2-b3c01d637bbf # 命名空间id

修改配置文件名

比如在本地跑代码进行自测,我需要自己的配置文件,我就可以修改文件名的prefix配置

# 表示读取的配置文件名为 binson.yaml和 binson-dev.yaml
spring:
  cloud:
    nacos:
      username: nacos
      password: nacos
      config:
		preifx: binson
        file-extension: yaml
  profiles:
  active: dev

共享配置文件

微服务项目有很多,但都用的是同一个中间件,如redis、mq等。这就需要每个微服务的配置都相同,这种情况我们就可以使用共享配置文件。将redis的共享配置文件放在redis.yaml种,mq的放在xxxmq.yaml。然后各个项目再去引用这些配置,就不需要在每个微服务中都去配置。

spring:
  cloud:
    nacos:
      config: 
      	shared-configs[0]:
          data-id: redis.yaml
          refresh: true # 支持实时更新
        shared-configs[1]:
          data-id: xxxmq.yaml
          refresh: true
        ...
# 注意:以前配置是spring.cloud.nacos.config.shared-dataids: redis.yaml,xxxmq.yaml,之后的版本被上面的配置取代了

实现配置实时更新

在类上加@RefreshScope注解即可。

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

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

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

或者配置类上,这样注入的这个配置对象的配置就是实时更新的。

@Data
@Component
@ConfigurationProperties(prefix = "refreshscope.test")
@RefreshScope
public class RefreshScopeTestConfig {

    private String config1;

    private String config2;
}

小结

掌握了以上这些nacos作为配置中心的使用,那在实际项目中使用就应该没有问题了。后续应该还会出nacos作为配置中心的原理篇,敬请关注!让我们一起进步。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值