使用zookeeper复制文件

时间:2013-09-24 10:19:02

标签: distributed-computing apache-zookeeper

我有一个分布式应用程序,我使用zookeeper来管理所有分布式服务器中的配置数据。我的每个服务器中的服务都需要运行一些dll。我正在尝试构建一个集中式系统,我可以将我的dll复制到所有服务器。 我可以用zookeeper实现吗? 我知道“ZooKeeper通常不是为大尺寸存储而设计的”。我的dll文件大小小于3mb。

3 个答案:

答案 0 :(得分:3)

对于大型节点数据的获取方式,存在1mb的软限制。根据{{​​3}},您可以增加最大数据大小:

  

jute.maxbuffer:

     

(Java系统属性:jute.maxbuffer)

     

此选项只能设置为Java系统属性。它上面没有zookeeper前缀。它指定可以存储在znode中的数据的最大大小。默认值为0xfffff,或者仅为1M。如果更改此选项,则必须在所有服务器和客户端上设置系统属性,否则将出现问题。这真是一个健全检查。 ZooKeeper旨在存储大小为千字节的数据。

我不建议将Zookeeper用于此目的,(您可以更轻松地在Web服务器上托管二进制文件),但理论上它似乎有可能。

答案 1 :(得分:2)

Zookeeper旨在传输群集内的消息。 你能做的最好的事情是创建一个包含Znodes的Znode_A, 观看znode a进行更改。 Znode_A中的每个Znode将代表一个dll并将包含一个dll路径。群集上的每个节点都会监视Znode_A数据的更改,因此当创建新的dll(znode)时,节点将知道从主存储库复制dll。

答案 2 :(得分:0)

为了传输文件,您可以使用SCP。 作为数据,您可以传递dll的文件路径。使用SCP,您可以从基础存储库中提取文件。