Zookeeper客户端
创建Zookeeper客户端
我们创建Zookeeper客户端时的sendThread和eventThread都是守护线程(没有业务线程在运行的时候,守护线程就会退出)。因此我们不能在main 里直接new Zookeeper,因为可能当我们创建好Zookeeper客户端后连接还没建立,main线程就结束了,而我们的两个线程都是守护线程,main线程一退出这两线程也退出。
我们需要用countDownLatch保证连接建立再让主线程退出。
源码分析:
- 构造函数
- start()
使用Zookeeper完成增删查改
获取数据的方式
同步
同步的方式获取数据:也就是只要数据还没获取到就一直阻塞在这里直到获取到数据
byte[] data = zooKeeper.getData(first_node, false, stat);
异步
这个方法在异步线程即eventThread执行
public void getData(String path, Watcher watcher, DataCallback cb, Object ctx) {
PathUtils.validatePath(path);
ZooKeeper.WatchRegistration wcb =