我知道Apache Curator可以执行分布式锁定功能,该功能构建在zookeeper的顶部.根据Apache Curator官方网站上发布的文档,它看起来很容易使用.例如:
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
CuratorFramework client = CuratorFrameworkFactory.newClient("host:ip",retryPolicy);
client.start();
InterProcessSemaphoreMutex lock = new InterProcessSemaphoreMutex(client, path);
if(lock.acquire(10, TimeUnit.SECONDS))
{
try { /*do something*/ }
finally { lock.release(); }
}
Run Code Online (Sandbox Code Playgroud)
但是"InterProcessSemaphoreMutex"的第二个参数"path"是什么意思呢?它意味着基于API的"锁定路径"但究竟是什么呢?谁能举个例子?
如果我有数百万的锁,我是否必须创造数百万的"锁定之路"?zookeeper集群的最大锁(znode)数量是否有限制?或者,当进程释放时,我们可以删除此锁吗?