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

这篇具有很好参考价值的文章主要介绍了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
 * 
 * <ul>
 * <li>A configuration file (default name to be <code>config.properties</code>, see {@link #DEFAULT_CONFIG_FILE_NAME}) on the classpath
 * <li>A list of URLs defined by system property {@value #CONFIG_URL} with values separated by comma <code>","</code>.
 * </ul>
 */
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);
    }
}

显然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);
    }
}

加载成功提示信息:
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

衣带渐宽终不悔,为伊消得人憔悴。
No URLs will be polled as dynamic configuration sources警告处理
文章来源地址https://www.toymoban.com/news/detail-404005.html

到了这里,关于No URLs will be polled as dynamic configuration sources警告处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包