Zookeeper 的 Java 开发示例,算是我用过比较清晰、上手快的一套资源。你要是刚好在做分布式应用,比如搞个配置中心、服务注册啥的,这玩意儿还挺靠谱。代码写法也蛮直观的,常用的增删改查都有,连事件监听都封装得不错。文档和例子结合得挺好,不是那种“只有 API 没场景”的写法。

Zookeeper 的节点结构像是个文件夹系统,ZNode 就是一个个目录,每个可以存点儿数据还能挂子节点。临时节点掉线就没,持久节点得你自己删,记住就好。

要操作 Zookeeper,ZooKeeper类是入口,初始化的时候得填上服务器地址、超时时间、还有个回调函数,监听连接变化挺方便:

ZooKeeper zookeeper = new ZooKeeper("127.0.0.1:2181", 3000, watchedEvent -> {
  // 连接状态变化
});

平常用的 CRUD 方法全在里头:

  • 创建节点create(),你能选临时还是持久
  • 读数据getData(),先判断下exists()
  • 更新setData(),注意带版本号,不然容易冲突
  • 删除也要带版本号,用delete()

还有一个比较好玩的点是事件监听,通过注册Watcher,你能知道节点啥时候被创建、改了或者删了。比如监听创建事件:

zookeeper.exists("/watchedNode", new Watcher() {
  @Override
  public void process(WatchedEvent event) {
    if (event.getType() == Event.EventType.NodeCreated) {
      System.out.println("Node created: " + event.getPath());
    }
  }
});

实战场景也有展示,像分布式锁用临时顺序节点挺香的。你可以下载testzookeeper项目看看,里面例子挺全的。

如果你是做服务发现、配置同步、分布式协调这些的,Zookeeper 还真别绕开,用熟之后省不少事儿。