一尘不染

分布式锁服务

java

您将使用哪种分布式锁定服务?

要求是:

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

我对诸如“可以通过数据库完成”或“可以通过JavaSpaces完成”之类的答案不感兴趣-我知道。我对现成的,现成的,经过验证的实现感兴趣。


阅读 208

收藏
2020-09-09

共1个答案

一尘不染

Teracotta(包括开源版本)已经通过使用synchronizedjava.util.concurrent.ReentrantReadWriteLock-显然符合您的要求的方式来分发锁定语义。


更新资料

由于该问题现在增加了与GigaSpaces“混合”的要求,所以我要说 不要 将它们混合。这只会增加您的技术堆栈的复杂性,并努力:

  • 在代码和基础架构方面进行集成;
  • 管理它们之间的同步;
  • 学习/调整/调试Teracotta。

将更好地用于基于GigaSpaces创建或实施锁定解决方案。

2020-09-09