我有一个分布式应用程序,我使用zookeeper来管理所有分布式servers.My服务中的配置数据,每个服务器都需要一些dlls来运行。我正在尝试构建一个集中式系统,在该系统中,我可以将我的dll复制到所有服务器。我可以使用zookeeper来实现吗?我知道"ZooKeeper通常不是为大容量存储而设计的“。我的dll文件的大小小于3mb。
发布于 2013-10-01 08:29:55
对于节点数据的大小,有1mb的软限制。根据docs,您可以增加最大数据大小:
jute.maxbuffer:
(Java系统属性: jute.maxbuffer)
此选项只能设置为Java系统属性。上面没有zookeeper前缀。它指定可以存储在znode中的数据的最大大小。默认值为0xfffff,或略低于1M。如果更改此选项,则必须在所有服务器和客户端上设置系统属性,否则会出现问题。这真的是一次理智的检查。ZooKeeper设计用于存储大小为千字节的数据。
为此,我不建议使用Zookeeper (您可以更容易地将二进制文件托管在web服务器上),但从理论上讲,这似乎是可能的。
发布于 2016-02-25 17:08:04
Zookeeper设计用于在集群内部传输消息。你能做的最好的事情就是创建一个包含znode的Znode_A,观察znode a的变化。Znode_A中的每个Znode将表示一个dll,并包含一个dll路径。集群上的每个节点都会监视Znode_A数据的变化,因此当创建新的dll (znode)时,这些节点将知道从主存储库复制dll。
发布于 2016-02-19 17:37:05
为了传输文件,您可以使用SCP。作为数据,您可以传递dll的文件路径。使用SCP,您可以从基础存储库中提取文件。
https://stackoverflow.com/questions/18978885
复制相似问题