我正在使用CuratorFramework 4.0.0和Zookeper 3.5.4。 我有以下代码片段:
RetryPolicy retryPolicy = new RetryOneTime(1000);
client = CuratorFrameworkFactory.newClient(zkConnectionString, retryPolicy);
client.start();
String path = "/node/test_lock";
client.createContainers(path);
InterProcessSemaphoreMutex lock = new InterProcessSemaphoreMutex(client, path);
if (lock.acquire(3, TimeUnit.MILLISECONDS)) {
LOGGER.debug(client.exists(lockPath) == null);
}
if (lock != null){
lock.release(); // After I call this method,
// the "/node/test_lock" node still exists.
}
使用zookeeper 3.5版时,不应自动删除锁定路径吗?我想念什么吗?
谢谢!
答案 0 :(得分:0)
用于锁定配方的“父” ZNode创建为Container nodes。当容器节点没有子节点时,ZooKeeper会对其进行清理。默认的时间检查是1分钟,因此您将不会看到父节点被删除,直到大约30分钟。 1分钟后(此值可以更改-有关znode.container.checkIntervalMs的详细信息,请参见此处)