0%

基于Zookeeper的Curator客户端实现分布式锁

前言

curator 是Java语言实现的增强版zookeeper客户端详情见官网

curator 的使用步骤:

  1. 引入curator客户端
  2. curator 已经实现了分布式锁的方法
  3. 直接调用即可

单元测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Test
public void testCuratorLock(){
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
CuratorFramework client = CuratorFrameworkFactory.newClient("localhost:2181", retryPolicy);
client.start();
InterProcessMutex lock = new InterProcessMutex(client, "/order");
try {
if ( lock.acquire(30, TimeUnit.SECONDS) ) {
try {
log.info("我获得了锁!!!");
}
finally {
lock.release();
}
}
} catch (Exception e) {
e.printStackTrace();
}
client.close();
}