标签: distributed-lock

分布式锁服务

你会使用哪种分布式锁服务?

要求是:

  1. 可以从不同的进程/机器中看到的互斥(锁定)
  2. 锁...释放语义
  3. 在某个超时后自动锁定释放 - 如果锁定持有者死亡,它将在X秒后自动释放
  4. Java实现
  5. 很高兴:.Net实施
  6. 如果它是免费的:死锁检测/缓解
  7. 易于部署,请参阅下面的说明.

我对"它可以在数据库上完成"或"它可以在JavaSpaces上完成"等答案不感兴趣 - 我知道.我对一个现成的,开箱即用的,经过验证的实现感兴趣.

java timeout locking distributed-lock

55
推荐指数
4
解决办法
3万
查看次数

redis集群上的锁

我有一个包含3个主节点的Redis集群,每个主节点都有相应的从节点。我想获取集群上的锁来执行一些写操作,然后释放锁。

据我所知,要连接到集群,我们通常连接到集群中的一个节点,并在该节点上执行所有操作,该节点又处理重定向到集群中其他节点的操作。

Redis集群是否可以获取锁?[PS我正在使用Redisson客户端]从Redisson客户端中Multilock和redlock( https://github.com/redisson/redisson/wiki/8.-Distributed-locks-and-synchronizers )下的示例中,它们正在获取锁在各个节点上。

  • 多锁或红锁如何在集群上工作?
  • 如果我有 Redis 集群,我该如何使用以及使用什么类型的锁?
  • 我使用哪个库(Jedis/Redisson)?

Jedis 似乎还支持集群锁定(https://github.com/kaidul/jedis-lock)。

PS:我已经广泛阅读了这方面的内容,但我无法找到有关锁定集群的明确答案。非常感谢一些帮助。

distributed-computing redis distributed-lock spring-data-redis redis-cluster

7
推荐指数
1
解决办法
3765
查看次数

ApacheCurator分布式锁定 - 性能

我们目前正在评估apache-curator的分布式锁定用例.以下是我们的测试用例:

public class Test { 
    private static CuratorFramework client = CuratorFrameworkFactory.newClient("zook.company.com", new ExponentialBackoffRetry(10,5));

    public static void main(String[] args) {
        client.start();
        int numLocks = 50000;
        int numThreads = 200;
        String[] keyPool = new String[numLocks];
        for (int i = 1; i <= numLocks; i++) {
            keyPool[i - 1] = String.valueOf(100 + i);
        }
        for (int i = 0; i < numThreads; i++) {
            Thread t = new Thread(new Job(numLocks, keyPool));
            t.setName("T" + (i + 1));
            t.start();
        }
    }

    private static class Job …
Run Code Online (Sandbox Code Playgroud)

distributed-lock apache-zookeeper apache-curator

5
推荐指数
0
解决办法
1112
查看次数

如何在Java中为应用程序锁定Redis集群

我有两个Java应用程序(app1,app2)。两个应用程序都将JedisCluster客户端用于Redis集群。app1从Redis集群写入或读取数据。app2就像一个调度程序,仅将一些数据写入Redis集群。它在固定的时间间隔后运行。我必须确保当app2执行写操作时,直到app2完成整个写操作后,才为app1提供数据或为之写数据。我想在app2运行时为app1锁定Redis集群。当时app1是否获得异常无关紧要。

java redis distributed-lock jedis

4
推荐指数
2
解决办法
3413
查看次数

.NET中的分布式锁定

我正在寻找适用于多台机器的锁定机制的建议。就我而言,我基本上只希望能够在2台计算机上启动服务,并阻塞一个直到另一个完成,这是确保在服务计算机出现故障时确保冗余的一种简单方法。

类似于分布式锁服务,但专门寻找人们已成功与.NET集成的项目。

.net locking distributed-lock

4
推荐指数
2
解决办法
5518
查看次数

在Hazelcast中,是否可以使用不关心执行锁定/解锁操作的本地线程的群集锁?

Hazelcast锁定(例如http://www.hazelcast.com/docs/1.9.4/manual/multi_html/ch02s07.html),据我所知,它的行为方式与Java并发原语相同,但在整个群集中.这使得可以用于在本地进程中的线程之间以及在集群之间进行同步.

但是,有什么办法可以选择退出这种行为吗?在我当前的项目中,我需要一种协调集群中资源的唯一所有权的方法,但是想要从我的应用程序中的多个点获取并释放这种所有权 - 我是否可以通过某种方式执行此操作,而不涉及将线程专用于管理这锁定在我的过程中?

locking distributed-lock hazelcast

4
推荐指数
1
解决办法
1465
查看次数

Hazelcast:对于分布式锁定键,可以使用哪个对象?

为了

Hazelcast.getLock(Object key)
Run Code Online (Sandbox Code Playgroud)

方法,什么是预期/可接受的关键对象?例如,是否可以使用String从集群中的不同节点引用此锁?或者它必须是某种分布式对象?

是完全精确的,并呼叫Hazelcast.getLock("myLock")中,当从两个不同的集群成员调用,是指相同的分布式锁?

distributed-lock hazelcast

2
推荐指数
1
解决办法
1222
查看次数