首页 > 解决方案 > Java中的分布式计数信号量

问题描述

我正在寻找一个分布式信号量实现(使用postgres/zookeeper作为存储),它类似于java.util.concurrent.Semaphore将维护一组许可的概念,这些许可将被使用acquire()和释放,release()允许我限制对某些资源的访问或同步某些执行。唯一的区别是这个信号量应该允许我跨多个 jvm 执行所有这些操作。

有人可以指出我是否在java中有任何这样的实现或任何实现相同的参考算法?

标签: javaalgorithmjava-8semaphore

解决方案


对于 zookeeper,您可以使用提供共享信号抽象的apache Curator库。

在 postgres 中,您可能会考虑为此使用咨询锁,并在此基础上实现一种应用类型的库。


推荐阅读