我正在寻找将配置分发到Java应用程序的问题的现有解决方案。
一个简单的例子:将有一个管理所有配置的主应用程序(配置服务器)C。当应用程序A启动时,它会注册到服务器C并获得正常工作所需的配置。显然,每个应用程序都应该由服务器和应用程序验证的服务器进行身份验证,可能使用证书。 服务器保存每个应用程序的配置。
我知道从头开始设计这样的架构并不困难,但我很想知道这个问题是否存在解决方案。
答案 0 :(得分:1)
有几个Apache项目
ZooKeeper http://zookeeper.apache.org/,用于分布式配置和协调
广泛使用的Commons Configuration http://commons.apache.org/configuration/,但我不确定它是否支持相互身份验证(您将使用数据库配置源)
答案 1 :(得分:0)
您可能需要考虑在Curl之上构建解决方案,这是一个开源的命令行实用程序,可以从URL下载文件并将该文件写入标准输出。例如,执行curl -sS http://someHost/file.cfg
将从指定的Web服务器下载file.cfg
。 -sS
选项指示Curl打印错误消息,但不打印任何进度诊断。 Curl支持许多协议,包括HTTP,FTP,LDAP及其安全变体。
Java应用程序可以:(1)执行Runtime.getRuntime().exec("curl -sS ...")
以使用Curl从某处下载配置文件的内容;然后(2)用你喜欢的任何配置解析器解析它。
为了节省您重新发明轮子(1),我建议您下载Config4J的源代码,并查看org.config4j.Util.execCmd()
方法的实现。