我在网上看到一些有关使用Zookeeper为服务器上线时向服务器分配分片号的帖子(假设您正在对群集中的数据进行分片)-但是我一生都找不到如何执行此操作的Java代码示例.有人已经在工作吗?谢谢.
解决方法:
在整个群集中分片数据时,有很多细节,例如复制和从故障中恢复.我通过分片来假设您的意思是您有N个节点,每个节点应处理第N个请求,并且客户端可以发现哪些服务器正在运行.
您首先创建一个持久节点/服务.每个服务器在启动时都会创建/ service的ephemeral子级,例如/ service / hostname:port.客户在/ service上维护watch,并在添加和删除子项时得到通知(客户必须在每次通知后更新手表).这样,客户端可以知道哪些服务器正在处理请求,并且可以适当地分发请求(轮询,随机).当服务器关闭时,它的临时节点将消失,客户端可以停止发送请求.
如果您正在寻找动物园管理员图书馆,那么curator可能是最好的图书馆.客户端将使用Path-Cache,而服务器仅创建一个临时节点.