【发布时间】:2015-06-29 17:33:11
【问题描述】:
我正在使用 ZooKeeper 来存储分层数据。在一项测试中,我为一个节点下存储了超过 30 万个子节点。当我尝试检索所有子节点时,ZK 客户端因 ConnectionLossException 而崩溃。
重构数据可能会解决问题(例如,通过分桶,因为它减少了每个节点的子节点数量)。
不过我很想知道以下问题的答案:
- ZK 有一个节点可以存储的数据限制(不超过 1MB),每个节点的子节点数量是否有类似限制?
- 增加 Java 堆大小是否允许 ZK 横向扩展每个节点的子节点数量?
- 有没有办法控制这些孩子被送回客户的方式?如果孩子是分批发送的,那么网络“打嗝”可能会破坏消息并导致失败。
谢谢!
【问题讨论】:
-
对于您的问题,我没有直接的答案,但我建议您查看 Curator 的技术说明。例如,Tech Node #4 包含一些可能对您有帮助的信息cwiki.apache.org/confluence/display/CURATOR/TN4
-
你提供的链接信息很有趣,出现的问题和我现在的情况差不多,非常感谢分享。
标签: java apache-zookeeper