光知道有这么个东西,实际连概念都没有搞清楚,很容易闹笑话。
zookeeper的概念 TODO
zookeeper是一个以树形结构为基础的分布式协调服务。
zookeeper是如何实现锁的
实现锁是zookeeper最常用的场景之一,但是如何实现的,不一定每个人都能说的清楚,包括自己在内。。。所以整理一下。
是这样,例如有3个客户端,有一个锁叫做用户同步锁(userSyncLock)。
当获取锁时,3个客户端会分别在userSyncLock目录下创建一个临时节点,共3个临时节点。
然后3个客户端分别查出该目录下所有节点,如果自己创建的这个临时节点是最小的,表示自己获取到了锁。
java连接zookeeper
pom.xml导入maven依赖
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
java代码如下:
public class ZookeeperDemo {
public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
ZooKeeper zooKeeper = new ZooKeeper("47.104.176.200:2181", 5000, new Watcher(){
@Override
public void process(WatchedEvent event) {
// TODO Auto-generated method stub
}
});
List<String> children = zooKeeper.getChildren("/", null);
for (String string : children) {
System.out.println(string);
}
}
}