1

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

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

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

4

1 回答 1

1

1) 属性文件可以正常工作。java.util.Properties 具有从流中加载和保存的便捷方法。您可能还想考虑将配置存储在 yaml 文件中,它允许的不仅仅是简单的键/值对。

2) 没有理由将配置信息存储在两个地方,如果这样做,就会混淆哪个是真正的配置文件。

于 2012-10-06T03:34:28.320 回答