nacos 默认 namespace: public 拿不到数据

nacos 是阿里开源的配置中心/注册中心组件

在spring-boot项目中, 可以使用下面的方法启动nacos config

nacos:
  config:
# 使用namespace=public时, 这里不能显示指定. 否则会拿不到数据
#    namespace: public
    username: admin
    password: 12345678
    server-addr: 10.0.18.92:8848
    group: ${spring.profiles.active}
# common 放通用配置, 可以被${spring.application.name}覆盖
    data-ids: ${spring.application.name},common
    type: YAML
    auto-refresh: true
    remote-first: true
    enable-remote-sync-config: true
    config-long-poll-timeout: 45000
    max-retry: 10
    config-retry-time: 3500
    bootstrap:
# 开启log
      enable: true
      log-enable: true

最坑的就是这个 

namespace: public

public是系统默认的namespace

但是不能在这里制定, 否则会造成nacos客户端向nacos server拿不到config的情况. 

这是nacos的一个bug(可以说是命名不规范吧), 具体可以参考其源码

com.alibaba.nacos.client.config.impl.ClientWorker#getServerConfig

    public String[] getServerConfig(String dataId, String group, String tenant, long readTimeout)
            throws NacosException {
        String[] ct = new String[2];
        if (StringUtils.isBlank(group)) {
            group = Constants.DEFAULT_GROUP;
        }
        
        HttpRestResult<String> result = null;
        try {
            Map<String, String> params = new HashMap<String, String>(3);
            if (StringUtils.isBlank(tenant)) {
                params.put("
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果在`application.yml`文件中添加了`nacos: core: preserved: heart: beat: interval: 1000`这行配置,但是没有生效,可能有以下几种原因: 1. 配置文件路径的问题 首先,需要确认`application.yml`文件的路径是否正确。在Spring Boot应用中,`application.yml`文件通常位于以下两个路径之一: - `src/main/resources/application.yml` - `src/main/resources/config/application.yml` 如果文件路径不正确,就无法读取到配置文件中的配置项。 2. 配置文件格式的问题 其次,需要确认`application.yml`文件的格式是否正确。在`application.yml`文件中,要注意以下几点: - 冒号后需要有一个空格。 - 缩进需要使用空格,而不是制表符。 - 如果一个配置项有多个层级,需要使用冒号加空格的方式表示。 例如,`nacos.core.preserved.heart.beat.interval`这个配置项,需要在`application.yml`中这样表示: ```yaml nacos: core: preserved: heart: beat: interval: 1000 ``` 3. 配置项名称的问题 最后,需要确认配置项名称是否正确。在Nacos配置中,有些配置项的名称可能会有所变化,需要根据实际情况进行调整。例如,`preserved.heart.beat.interval`这个配置项,在不同版本的Nacos中可能会有不同的名称,需要查看相应的文档或代码来确认。 如果以上三个方面都已经确认无误,但是配置项还是没有生效,可以尝试重启应用或者检查是否有其他地方覆盖了这个配置项。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值