Zookeeper

apache curator

August 18, 2017
Zookeeper, Java, Distributed

“Guava is to java what Curator is to Zookeeper”. Start # Curator之前介绍过一些,是一个使用流式API方式实现的Zookeeper的Java客户端。 Get a connection # connection的实例(CuratorFramework)是用工厂模式分配的(CuratorFrameworkFactory),对于一个zk集群,你只需要一个连接的实例。 同时你可能会用到的是RetryPolicy 去设置失败重试的参数,一般你会这样使用: RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3) CuratorFramework client = CuratorFrameworkFactory.newClient(zookeeperConnectionString, retryPolicy); client.start(); 客户端需要显式的start并且在不用的时候显式的close. 在链接成功以后就可以直接操作对应的集群。并且,如果在执行操作的过程中出现了连接错误,curator的manage会自动重新尝试操作。 分布式锁 # 不可以对某个路径下的节点进行上锁: InterProcessMutex lock = new InterProcessMutex(client, lockPath); if ( lock.acquire(maxWait, waitUnit) ) { try { // do some work inside of the critical section here } finally { lock.release(); } }