No URLs will be polled as dynamic configuration sources

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

现象

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掉。


org.springframework.cloudspring-cloud-starter-netflix-eureka-clientspring-cloud-starter-netflix-archaiusorg.springframework.cloud


org.springframework.cloudspring-cloud-starter-netflix-ribbonspring-cloud-netflix-archaiusorg.springframework.cloud

方法二

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

方法三

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

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