• No URLs will be polled as dynamic configuration sources警告处理


    问题

    启动Eureka 注册中心出现如下警告

    WARN 3732 — [main] c.n.c.sources.URLConfigurationSource : No URLs will be polled as dynamic configuration sources.
    INFO 3732 — [main] c.n.c.sources.URLConfigurationSource : To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.

    直译一手:
    没有轮询到任何 URL 作为动态配置源。
    要将 URL 启用为动态配置源,请定义系统属性 archaius.configurationSource.additionalUrls 或使 config.properties 在类路径中可用。

    分析

    源码提示也是非常贴心了,警告之后随即给出了解决方案。
    进入提示类URLConfigurationSource

    /**
     * Create the instance for the default list of URLs, which is composed by the following order
     * 
     * 
      *
    • A configuration file (default name to be config.properties, see {@link #DEFAULT_CONFIG_FILE_NAME}) on the classpath *
    • A list of URLs defined by system property {@value #CONFIG_URL} with values separated by comma ",". *
    */
    public URLConfigurationSource() { List<URL> urlList = new ArrayList<URL>(); URL configFromClasspath = getConfigFileFromClasspath(); if (configFromClasspath != null) { urlList.add(configFromClasspath); } String[] fileNames = getDefaultFileSources(); if (fileNames.length != 0) { urlList.addAll(Arrays.asList(createUrls(fileNames))); } if (urlList.size() == 0) { configUrls = new URL[0]; logger.warn("No URLs will be polled as dynamic configuration sources."); logger.info("To enable URLs as dynamic configuration sources, define System property " + CONFIG_URL + " or make " + DEFAULT_CONFIG_FILE_FROM_CLASSPATH + " available on classpath."); } else { configUrls = urlList.toArray(new URL[urlList.size()]); logger.info("URLs to be used as dynamic configuration source: " + urlList); } }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    显然Eurak依赖了netflix-archaius的包,产生了警告。
    Archaius 是什么
    Archaius 包含一组 Netflix 使用的配置管理 API。它提供以下功能:

    动态的类型化属性

    高吞吐量和线程安全配置操作

    允许获取配置源的属性更改的轮询框架

    一种回调机制,在有效/“获胜”属性突变时调用(在配置的有序层次结构中)

    一个 JMX MBean,可以通过 JConsole 访问以检查和调用属性上的操作

    开箱即用的组合配置(具有有序层次结构),适用于应用程序(以及大多数愿意使用基于约定的属性文件位置的 Web 应用程序)

    URL、JDBC 和 Amazon DynamoDB 的动态配置源的实现

    Scala 动态属性包装器

    解决

    满足加载所需的要求即可解决,不需要也可以去除依赖

    方案一

    在resources目录下创建config.properties文件。

    方案二

    启动参数指定

    -Darchaius.configurationSource.additionalUrls=file:\E:\conf.properties

    方法三

    启动类指定

    public class Application {
    
        static {
            System.setProperty("archaius.configurationSource.defaultFileName", "test.properties");
        }
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class,args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    加载成功提示信息:
    INFO 2672 — [ main] c.n.c.sources.URLConfigurationSource : URLs to be used as dynamic configuration source: [file:/G:/xxx/target/classes/test.properties, file:/E:/conf.properties]
    官网参考:
    https://docs.spring.io/spring-cloud-netflix/docs/2.2.10.RELEASE/reference/html/#external-configuration-archaius

    衣带渐宽终不悔,为伊消得人憔悴。
    在这里插入图片描述

  • 相关阅读:
    java计算机毕业设计Web网上购书后台管理系统源码+mysql数据库+系统+lw文档+部署
    转置卷积详解(原理+实验)
    Redis与分布式:哨兵模式
    Bean的装配
    Java-继承
    Spring Cloud Gateway(网关)
    mysql约束之_唯一约束
    css PC端弹窗时禁止底部页面滚动
    Cesium 问题:加载 geojson 文件后使用 remove 方法移除,但浏览器内存会持续增长并为得到释放直到浏览器崩掉
    前端开发纷繁复杂,是否有更高效的开发方式?
  • 原文地址:https://blog.csdn.net/qq_35764295/article/details/126018178