标签: netflix-archaius

春天云与Archaius

我很难理解如何使用Netflix Archaius和Spring Boot Config.

我有一个微服务,可以从Spring Cloud Config Server获取配置,但我希望配置在更改时自动刷新.据我所知,通过从存储库中提取信息,可以在客户端使用Archaius实现这一点.

我已搜索但无法找到完成此操作的教程或示例.

netflix spring-cloud netflix-archaius

5
推荐指数
0
解决办法
2196
查看次数

Netflix archaius 无法读取更新的属性文件值

我是 Netflix archaius 的新手。我有一个读取 Java 属性文件并打印属性值的代码片段。

当该程序运行时,它会打印 testproperty.properties 文件中名为“Fields”的属性的值。现在,当该程序运行时,我正在更新“Fields”属性的值,因此 archaius 应该动态获取更改值。但它仍在打印旧值。

在这个 Java 程序中使用 archaius 的正确方法是什么?或者在不重新启动程序的情况下更新程序中的属性?如果有人可以指出此代码片段中的更正,那将会很有帮助。

我想用Netflix archaius运行一个演示,所以我在我的项目中通过maven导入了archaius。

现在我正在更新我的属性文件。但它仍然打印旧的财产价值。(PS:我在驱动程序中保留了连续的 while 循环,以查看 archaius 是否在运行时选择更新属性值。我想这就是 archaius 应该做的。获取更新的属性而不重新启动应用程序。如果我错了,请纠正我。)

下面是我的代码片段:

import com.netflix.config.DynamicPropertyFactory;
import com.netflix.config.DynamicStringProperty;

public class PropertyChangetest {

    public static void main(String args[]) {

        DynamicPropertyFactory sampleProp = DynamicPropertyFactory.getInstance();
        System.setProperty("archaius.configurationSource.defaultFileName", "TestProperty.properties");
        System.setProperty("archaius.fixedDelayPollingScheduler.delayMills", "500");

        while(true) {
            DynamicStringProperty sampleProp1 = sampleProp.getStringProperty("fields","");
            System.out.println(sampleProp1.get());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的“TestProperty.properties”文件只有一个名为“字段”的属性。运行程序后,我正在更新我的属性文件,但它仍然打印旧值。

java netflix configuration-management apache-commons-config netflix-archaius

5
推荐指数
1
解决办法
2529
查看次数

使用 Archaius 重新加载 Spring bean

我正在尝试将 Archaius 与我的 Spring 应用程序一起使用来重新加载动态系统属性,而无需完全重新启动应用程序。我计划使用 Archaius 的回调机制来实现这一点。一旦 Archaius 检测到更改,我计划在回调方法中进行 bean 刷新以获取新的属性更改。

问题是,有一些在启动时创建的单例 bean,它们正在使用我想要重新加载的属性。我还有一些自动装配这个单例 bean 的类。

有没有办法在不执行重新启动或 applicationContext.refresh() 的情况下刷新 bean 及其所有依赖项?

或者Archaius有一个内置的库可以帮助Spring集成吗?

java spring netflix-archaius

5
推荐指数
0
解决办法
352
查看次数

Archaius的财产变更监听者

我正在使用Archaius来保持托管我的应用程序的所有服务器之间的系统属性.我可以看到所有属性getter都可以在该属性发生变化时调用回调(例如,参见第三个参数getStringProperty()),但我想监听任何属性更改.我可以实现一些接口并在某处注册为监听器吗?

java apache-commons-config netflix-archaius

3
推荐指数
1
解决办法
1580
查看次数