Zookeeper用于分配分片索引

时间:2012-03-15 16:08:14

标签: java sharding apache-zookeeper

我在网上看到一些关于使用Zookeeper在服务器上线时将分片号分配给服务器的帖子(假设你是在群集中分片数据) - 但是对于我的生活中找不到Java代码如何做的例子这个。任何人都有这个工作吗?感谢。

1 个答案:

答案 0 :(得分:3)

跨群集分片数据有很多细节,例如复制和故障恢复。我假设您通过分片表示您拥有 N 节点,并且每个节点应处理 1 / N 个请求,并且客户端可以发现哪些服务器已启动

首先创建一个持久节点/service。每个服务器在启动时都会创建一个ephemeral /service子项,类似/service/hostname:port。客户在/service上保持watch,并在添加和删除子项时收到通知(客户必须在每次通知后续订)。这样,客户端就知道哪些服务器正在提供请求,并且可以根据需要分发请求(循环,随机)。当服务器关闭时,它的临时节点将消失,客户端可以停止发送请求。

如果您正在寻找一个动物园管理员库,curator可能是最好的。客户端将使用Path-Cache,而服务器只是创建一个短暂的节点。