有谁知道Curator锁配方中哪些创建了短暂的节点?
我测试了InterProcessMutex
锁,但据我所知(使用zkClient
),它在发布或关闭会话后不会删除节点。
这是我用于锁定密钥的代码。
public void lock(final LockKey lockkey, final LockAcquiredListener listener) throws Exception {
final String lockKeyPath = lockkey.toString();
LOGGER.info("Trying to acquire the lock {}", lockKeyPath);
final InterProcessMutex lock = new InterProcessMutex(client, LOCKS_PREFIX + lockKeyPath);
if (!lock.acquire(LOCK_MS_TIME_OUT, TimeUnit.MILLISECONDS)) {
LOGGER.info("Could not acquire the lock {}", lockkey.toString());
throw new LockAcquisitionTimeOutException("Could not acquire the lock: " + lockKeyPath);
}
try {
if (listener != null) {
LOGGER.info("Lock acquired for key {}", lockKeyPath);
listener.lockAcquired(lockkey);
}
} finally {
LOGGER.info("Release acquired key {}", lockKeyPath);
lock.release();
}
}
谢谢!