问题标签 [netflix-archaius]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1875 浏览

java - Archaius 的属性更改侦听器

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

0 投票
2 回答
765 浏览

rest - Netflix Archaius 和 REST ConfigurationSource

Netflix 在 Archaius概览页面上表示

每个配置都可以来自配置源,例如:JDBC、REST、.properties 文件等。

但是,我在 Javadocs 中找不到对现有基于 REST 的 ConfigurationSource 的任何引用。

有人看到我错过了什么吗?谢谢你。

0 投票
0 回答
2341 浏览

spring-cloud - Spring Cloud 与 Archaius

我很难理解如何将 Netflix Archaius 与 Spring Boot Config 一起使用。

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

我已经搜索但找不到完成此操作的教程或示例。

0 投票
0 回答
370 浏览

guice - Netflix Governator 使用 Archaius 配置提供程序进行配置

我想使用 Archaius 配置提供程序配置一个由管理者驱动的项目。我正在使用Governator 1.10.5 版。

我查看了如何配置 ArchaiusConfigurationProvider,在此处进行了描述。

我的用例是我通过将 DefaultGovernatorConfiguration 构建器传递给 Governator.createInjector() 来创建 LifeCycleInjector。我已经看到这个调用被弃用了,但是有没有办法可以将 ArchaiusConfigurationProvider 设置到传入的治理器配置上?在以前的 DefaultGovernatorConfiguration 版本中,有一些方法可以将 BootStrap 模块添加到配置中(在上面的链接中描述为第二个选项),但在最新版本中没有。

还查看上面链接中描述的第一个选项,他们说可以通过执行以下操作来配置提供程序:

“使用 @AutoBindSingleton 注释 ConfigurationProvider(确保它位于传递给类路径扫描器的包集中)。” 在 ArchaiusConfigurationProvider 的情况下,我该怎么做呢?我是否需要围绕它编写一个包装器,并使用@AutoBindSingleton 进行注释?

另外,我注意到一些项目 karyon,它在这里描述它“将 ArchaiusConfigurationProvider 绑定为管理者的 ConfigurationProvider”。我真的需要 karyon 依赖项和服务器来绑定 ConfigurationProvider 吗?哪种方法是正确的?

谢谢,克里斯蒂安

0 投票
1 回答
1830 浏览

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

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

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

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

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

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

下面是我的代码片段:

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

0 投票
2 回答
5835 浏览

java - Netflix Archaius 动态配置

我正在将 Hystrix 集成到我现有的项目中,并且我想从 xml 文件中读取配置值,而不是使用 Configuration Manager 提供配置属性。当 xml 文件中的值更新时,我希望在运行时更新 Hystrix 配置。

这是我正在关注的指南: https ://github.com/Netflix/archaius/wiki/Users-Guide

到目前为止,我知道我可以使用 PolledConfigurationSource 和以下代码:

如何在固定时间间隔后将 PolledConfigurationSource 指向 xml 文件以读取属性?

0 投票
0 回答
305 浏览

java - 有没有办法让 Spring 动态地重新加载引导属性?

我有一个自动配置 Netflix 的 DynamicPropertyFactory 实例的 spring-boot 应用程序。这使我们能够读取 spring 知道的任何属性以及我们指定的任何其他源。

当我们更改核心弹簧类中使用的弹簧属性时,就会出现问题。例如logging.level.org.springframework.web=INFO,在 applicationContext 设置之前、期间和之后用于核心类或 spring。如果我们在应用程序运行时更改此属性以说logging.level.org.springframework.web=TRACE...

dynamicPropertyFactory.getInstance().getStringProperty() 最终实现了改变。但是,spring 核心类继续在 INFO 中记录,而不是按预期更改为 TRACE。

0 投票
0 回答
319 浏览

java - 使用 Archaius 重新加载 Spring bean

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

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

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

还是 Archaius 有一个内置库可以帮助 Spring 集成?

0 投票
1 回答
1545 浏览

configuration - hystrix 的默认配置文件名是什么

https://github.com/Netflix/Hystrix/wiki/Configuration中列出了许多 hystrix 的设置。但是我没有在文档中找到 hystrix/archaius 默认加载的默认属性文件名是什么。

我的问题是,是否有默认属性文件?如果没有,我该如何指定一个?

0 投票
0 回答
51 浏览

java - 如果正在更新对象,则阻止对其进行访问

想知道是否有人可以帮助解决这种情况-

我有一个使用 Netflix 的 Archaius 属性配置的类(处理器),它是 ElasticSearch Java BulkProcessor 的简单包装器。我还将一些回调与属性挂钩,因此如果值更改,BulkProcessor 属性也应该得到更新。我的问题是,BulkProcessor 是不可变的,更新属性的唯一方法是关闭一个实例并创建一个新实例。在调用回调时,我不想从我的类中调用任何方法 - 有没有办法用 Java 做到这一点?

编辑:虽然我可以更新配置文件并重新启动服务,但我试图避免这种情况。

我目前的想法是使用 AtomicBoolean 来指示类是否正在更新-如果为真,则阻止对类的访问,这似乎不是很有效-

非常感谢任何帮助或指示!