用于长时间运行的java进程的配置系统

时间:2012-10-04 20:32:01

标签: java configuration-management apache-zookeeper

我正在编写一个长时间运行的java进程,它将在内存队列中进行轮询,并将使用队列中的项目。我希望使用zookeeper在此服务中进行动态配置。我已经编写了一个运行线程并监视zookeeper节点的java类。在对zookeeper节点的每次更改时,都会触发一个事件,并获取zookeeper节点数据的新内容。现在的问题是:

  1. znode数据的编码应该是什么,一个选项是使用类似系统的.properties文件,只需键值对,然后在我的监听器中在更改时在配置类中设置这些键。

  2. 将这些数据写入文件然后在我的java程序中包含该配置文件是否有意义?如果我这样做,当配置更改时,我将不得不以某种方式刷新磁盘中的内容。我没有看到将这些配置写入本地文件的特殊好处。 Zookeeper服务器有足够的冗余,当服务被退回时,配置刷新线程可以获取该znode的所有数据。

1 个答案:

答案 0 :(得分:1)

1)属性文件可以正常工作。 java.util.Properties具有从流中加载和保存的便捷方法。您可能还希望将配置存储在yaml文件中,这样可以比简单的键/值对更多。

2)没有理由将配置信息存储在两个地方,如果你这样做,那么真正的配置文件会让人感到困惑。