带有 Spring 云配置服务器的 Netflix Archaius

Netflix Archaius with Spring Cloud Config server

我关注了 Archaius 的 this 文档和其他一些在线文章。但是,大概,每个服务都应该有 Archaius 或配置相关的 codes/dependencies(-jars) 来加载配置值。我担心的是,如果加载配置需要更改,则每个服务都必须 reloaded/redeployed.
Q1.谁能告诉我如何保持集中式 Archaius 配置服务以便客户端拉取配置。

相反,Spring Cloud Config 服务器完成了这项工作 - 所有配置都在一个地方。但我觉得它缺少从自定义资源加载配置 - 例如,Archaius 提供的从数据库加载数据。
Q2。是否有解决办法让配置服务器从 Archaius 加载配置?

对于 Q1,您应该查看 Archaius 的 2.x 分支,特别是 https://github.com/Netflix/archaius/blob/2.x/archaius2-persisted2/src/main/java/com/netflix/archaius/persisted2/Persisted2ConfigProvider.java。这被配置为对将在您的配置前面的某些服务进行休息调用。在 Netflix,我们有一个由 Cassandra 支持的休息服务。自然地,您可以随心所欲地支持它。但公平的警告,这个 Archaius 设置是为 Guice 设计的,需要一些手动设置。例如,如果您一直在使用 Spring Boot/Cloud 初学者,它并不像您期望的那样无缝。

对于Q2,Spring Cloud Config 确实支持loading data from a DB。此外,根据我使用 Spring 产品的经验,如果您想做一些更自定义的事情,它们几乎总是很容易扩展到您自己的目的。

一般建议:如果您除了远程配置之外没有其他 need/use Archaius,并且您是 Spring 用户,我建议您使用 Spring Cloud。配置起来会容易得多,并且可能会很好地满足您的要求。

A​​rchaius 提供了一种方法来处理读取动态变化的配置,同时对性能的影响最小。如果您不在 Spring,或者碰巧需要快速访问动态属性,请考虑 Archaius。