我试图在我们的项目中使用Zookeeper。可以运行服务器..即使使用zkcli.sh测试它..一切都很好.. 但是找不到一个好的教程让我用Java连接到这个服务器!我在Java API中需要的只是一个方法
public String getServiceURL ( String serviceName )
我试过https://cwiki.apache.org/confluence/display/ZOOKEEPER/Index - >对我不好。
http://zookeeper.apache.org/doc/trunk/javaExample.html:好的;但是不能清楚地理解概念!我觉得它没有得到很好的解释..
答案 0 :(得分:25)
最后,这是我提出的最简单,最基本的程序,它将帮助您使用ZooKeeper"入门":
return one + two
答案 1 :(得分:3)
如果您正在寻找Java示例,那么这篇博客文章Zookeeper Java API examples包含一些很好的示例。 Zookeeper还提供了一个非常易于使用的客户端API库(C和Java)。
Zookeeper是最好的开源服务器和服务之一,有助于可靠地协调分布式进程。 Zookeeper是一个CP系统(参考CAP定理),它提供一致性和分区容差。在所有节点上复制Zookeeper状态使其成为最终一致的分布式服务。
答案 2 :(得分:3)
这篇文章几乎涵盖了与Zookeeper交互所需的所有操作。 https://www.tutorialspoint.com/zookeeper/zookeeper_api.htm
答案 3 :(得分:2)
如果您在AWS上;现在我们可以创建支持基于URI的重定向的内部ELB ..这可以真正解决已经出现的高可用性问题。
答案 4 :(得分:2)
这就像你能得到的一样简单。我正在构建一个工具,它将使用ZK来锁定正在处理的文件(因此是类名):
package mypackage;
import java.io.IOException;
import java.util.List;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.Watcher;
public class ZooKeeperFileLock {
public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
String zkConnString = "<zknode1>:2181,<zknode2>:2181,<zknode3>:2181";
ZooKeeperWatcher zkWatcher = new ZooKeeperWatcher();
ZooKeeper client = new ZooKeeper(zkConnString, 10000, zkWatcher);
List<String> zkNodes = client.getChildren("/", true);
for(String node : zkNodes) {
System.out.println(node);
}
}
public static class ZooKeeperWatcher implements Watcher {
@Override
public void process(WatchedEvent event) {
}
}