Curator lock
Curator 提供的分布式锁用法,很简单:
package curator.lock;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.framework.recipes.locks.InterProcessMutex;
import org.apache.curator.retry.ExponentialBackoffRetry;
public class InterProcessMutexDemo {
public static void main(String[] args) {
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
final CuratorFramework client = CuratorFrameworkFactory.builder().connectString("127.0.0.1:2181").sessionTimeoutMs(5000).connectionTimeoutMs(10000).retryPolicy(retryPolicy).namespace("text").build();
client.start();
InterProcessMutex lock = new InterProcessMutex(client,"/lock");
try {
lock.acquire();
System.err.println("生成订单号");
Thread.currentThread().sleep(5000L);
} catch (Exception e) {
} finally {
try {
lock.release();
} catch (Exception e) {
e.printStackTrace();
}
}
try {
lock.acquire();
System.err.println("生成订单号");
Thread.currentThread().sleep(Long.MAX_VALUE);
} catch (Exception e) {
} finally {
try {
lock.release();
} catch (Exception e) {
e.printStackTrace();
}
}
}
} 相关推荐
duckes 2020-05-25
亦碎流年 2020-02-19
wangyangsoftware 2019-12-17
hyclq 2018-12-24
strburnchang 2016-01-09
Wisher 2019-07-01
XiaoqiangNan 2018-12-24
huangliuyu00 2019-06-29
田雄兵 2014-03-03
iamlihongwei 2014-03-03
bloodsuckerm 2018-09-29
yixu0 2018-08-17
zcanxue 2019-04-30
加号Jaryn笔录 2016-09-13