Zookeeper 3.5 и Curator 4.0: выпуск InterProcessMutex () не удалял путь блокировки - PullRequest
0 голосов
/ 21 сентября 2018

Я использую 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 путь блокировки не должен удаляться автоматически?Я что-то упустил?

Спасибо!

1 Ответ

0 голосов
/ 24 сентября 2018

«Родительские» ZNodes для рецептов блокировки создаются как Контейнерные узлы .Когда у узла контейнера нет дочерних элементов, он очищается ZooKeeper.Проверка времени по умолчанию - 1 минута, поэтому вы не увидите, как родительские узлы были удалены до прибл.1 минута спустя (это значение можно изменить - подробности см. Здесь znode.container.checkIntervalMs )

...