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
    评论
要取得Nacos配置中心中的List类型配置,需要使用Nacos提供的Java SDK,具体步骤如下: 1. 引入Nacos Java SDK的依赖,可以在Maven中添加如下依赖: ```xml <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>${nacos.version}</version> </dependency> ``` 2. 在代码中使用Nacos SDK获取配置,示例代码如下: ```java import com.alibaba.nacos.api.NacosFactory; import com.alibaba.nacos.api.config.ConfigService; import com.alibaba.nacos.api.config.listener.Listener; import com.alibaba.nacos.api.exception.NacosException; import java.util.List; import java.util.Properties; import java.util.concurrent.Executor; public class NacosConfigExample { public static void main(String[] args) throws NacosException { String serverAddr = "localhost:8848"; // Nacos服务地址 String dataId = "example"; // 配置ID String group = "DEFAULT_GROUP"; // 配置分组 Properties properties = new Properties(); properties.put("serverAddr", serverAddr); ConfigService configService = NacosFactory.createConfigService(properties); String content = configService.getConfig(dataId, group, 5000); // 获取配置内容,超时时间为5000ms // 将List类型的配置转换为List对象 List<String> list = Arrays.asList(content.split(",")); // 监听配置变化 configService.addListener(dataId, group, new Listener() { @Override public void receiveConfigInfo(String configInfo) { // 配置变化后的处理逻辑 List<String> list = Arrays.asList(configInfo.split(",")); // ... } @Override public Executor getExecutor() { return null; } }); } } ``` 在获取配置之后,可以将List类型的配置内容转换为List对象进行处理。同时,可以使用addListener方法监听配置的变化,当配置发生变化时,会触发Listener中的回调函数,从而进行相应的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值