Curator是Netflix公司开源的一套ZK客户端框架。基于Zookeeper官方API自定义实现分布式锁
有以下特征:
- Curator API简单明了,接入成本很低;
- 解决了异常处理、Watch反复注册 ;
- 客户端宕机等异常情况下,当前客户端持有的锁可实时释放;
- 提供了各种分布式场景下的工具包,例如分布式锁的实现,分布式CyclicBarrier实现、Leader选举等;
方法:
Maven依赖
<dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version> 4.1 . 0 </version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version> 4.1 . 0 </version> </dependency> |
对外接口
import java.util.concurrent.TimeUnit; /** * 分布式锁 * @author */ public interface DistributedLock {
/** * 获取锁(阻塞) * @param lockName 锁名 */ void lock(String lockName); /** * 获取锁(直接返回) * @param lockName 锁名 * @return */ boolean tryLock(String lockName); /** * 获取锁(直接返回) * @param lockName 锁名 * @param time 超时时间 * @param unit 超时单位 * @return */ bo
|