现象

Eureka client启动时出现“No URLs will be polled as dynamic configuration sources”警告,

并提示:需要配置archaius.configurationSource.additionalURL或创建config.properties。

  WARN 1722 --- [           main] c.n.c.sources.URLConfigurationSource     : No URLs will be polled as dynamic configuration sources.
  INFO 1722 --- [           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.
  WARN 1722 --- [           main] c.n.c.sources.URLConfigurationSource     : No URLs will be polled as dynamic configuration sources.
  INFO 1722 --- [           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.

分析

根据错误提示可以找到com.netflix.config.sources.URLConfigurationSource类,其中包含初始化过程,这里就不细说了。

分析可知道由于eureka-client包内引入了netflix-archaius包,默认需要加载配置源,无法加载配置元导致系统警告。

netflix-archaius与spring-config和apollo等配置组建类似。

解决办法

方法一(推荐)

在不使用archaius组件前提下,排除netflix-archaius引入。

如还引入了其他netflix组件,可能也会有archaius引入,需要一起exclusion。

可以通过idea中maven>show dependencies中使用“cmd/ctrl+f”查找archaius,并exclusion掉。

pom.xml中exclusion掉。

<!-- 基于eureka的功能 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>spring-cloud-starter-netflix-archaius</artifactId>
            <groupId>org.springframework.cloud</groupId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 基于ribbon的功能 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>spring-cloud-netflix-archaius</artifactId>
            <groupId>org.springframework.cloud</groupId>
        </exclusion>
    </exclusions>
</dependency>

方法二

在resources目录下创建一个空的config.properties文件。

方法三

通过启动参数“-Darchaius.configurationSource.additionalUrls”制定配置文件

-Darchaius.configurationSource.additionalUrls="classpath:extra.properties,file:///home/user/other-extra.properties"

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐