我关注了Archaius和其他一些在线文章的this文档。但是,大概是,每个服务都应该有Archaius或配置相关的代码/依赖项(-jars)来加载配置值。我担心的是,如果在加载配置时需要进行更改,则必须重新加载/重新部署每个服务 Q1。任何人都可以让我知道如何保留集中的Archaius配置服务,以便客户端服务提取配置。
相反,Spring Cloud Config服务器可以完成这项工作 - 所有配置都在一个地方。但我觉得它缺少自定义资源的加载配置 - 例如Archaius提供的数据库加载数据 的 Q2 即可。是否有解决方案使Config Server从Archaius加载配置?
答案 0 :(得分:3)
对于 Q1 ,您应该查看Archaius的2.x分支,特别是https://github.com/Netflix/archaius/blob/2.x/archaius2-persisted2/src/main/java/com/netflix/archaius/persisted2/Persisted2ConfigProvider.java。这被配置为对您的Config前面的某些服务进行休息调用。在Netflix,我们有一个由Cassandra支持的休息服务。当然,你可以随心所欲地支持它。但公平的警告,这个Archaius设置是为Guice设置的,需要一些手动设置。如果你一直在使用Spring Boot / Cloud启动器,它就不像你想象的那么无缝。
对于 Q2 ,Spring Cloud Config确实支持loading data from a DB。另外,根据我对Spring产品的体验,如果你想做更多自定义的事情,它们几乎总是很容易扩展到你自己的目的。
一般建议:除了远程配置之外你没有其他需要/使用Archaius并且你是Spring用户,我建议你选择Spring Cloud。配置起来会容易得多,并且可能很好地满足您的要求。
Archaius提供了一种处理动态更改Config的方法,同时将性能影响降至最低。如果你不在Spring,或者碰巧需要快速访问动态属性,请考虑Archaius。