Distributed Concurrency Control
you might want to consider using Hazelcast distributed locks. Super lite and easy. java.util.concurrent.locks.Lock lock = Hazelcast.getLock (“mymonitor”); lock.lock (); try { // do your stuff }finally { lock.unlock(); } Hazelcast – Distributed Queue, Map, Set, List, Lock