Apache zookeeper 重新要求馆长跨进程读写锁

Apache zookeeper 重新要求馆长跨进程读写锁,apache-zookeeper,apache-curator,Apache Zookeeper,Apache Curator,我试图用Curator进程间锁替换数据库悲观锁。对于数据库锁,我在事务开始时对实体执行select for updatelock,并在提交事务时释放它。事务可以跨越多个方法,如果链中的任何方法再次尝试获取该锁,它将在同一事务/线程中运行时获取该锁 现在使用zookeeper lock,我看到的示例如下所示: InterProcessMutex lock = new InterProcessMutex(client, lockPath); if ( lock.acquire(maxWait, wa

我试图用Curator进程间锁替换数据库悲观锁。对于数据库锁,我在事务开始时对实体执行
select for update
lock,并在提交事务时释放它。事务可以跨越多个方法,如果链中的任何方法再次尝试获取该锁,它将在同一事务/线程中运行时获取该锁

现在使用zookeeper lock,我看到的示例如下所示:

InterProcessMutex lock = new InterProcessMutex(client, lockPath);
if ( lock.acquire(maxWait, waitUnit) ) 
{
    try 
    {
        // do some work inside of the critical section here
    }
    finally
    {
        lock.release();
    }
}

如果我的服务调用跨越多个方法,并且这些方法中的任何一个单独尝试获取该锁,这将产生问题。我不希望锁被传递,因为这些是独立的业务方法。如果我在同一个线程中运行,是否有一些服务/工厂实现可以返回相同的锁对象?

如何将其置于threadLocal?这是可以做到的,但我想知道是否存在获取此锁的标准方法?