使用Java客户端的好Zookeeper Hello world程序

时间:2015-11-04 14:35:25

标签: java apache-zookeeper

我试图在我们的项目中使用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:好的;但是不能清楚地理解概念!我觉得它没有得到很好的解释..

5 个答案:

答案 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

  1. 使用数据创建ZNode
  2. 删除ZNode
  3. 获取ZNodes(儿童)列表
  4. 检查是否存在ZNode
  5. 编辑ZNode的内容......

答案 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) {
    }

  }