我正在使用JBoss作为6编写一个Java应用程序,而且我有一个资源,需要对给定参数的方法进行独占访问(与第三方软件的一些接口)。目前,我正在调皮(自)和使用java.util.concurrent.ReentrantLock处理锁定。
现在,我将多个JBoss应用服务器集群在一起,因此我需要一个跨集群中不同节点工作的解决方案。我想我至少有以下几个选择。
共享缓存(Infinispan)
基于文件系统的锁定(可能不好,但我们还是依赖共享文件系统)
数据库
的?
理想情况下,我正在寻找一个高级API,这样我就可以编写这样的EJB方法
public class MyE
在我的spring应用程序中,我有一个服务方法,其中包含一个由锁保护的代码块。一次只有一个线程可以输入代码块。这在非集群环境中运行良好,但在集群环境中却失败。在集群环境中,节点内部发生同步,但在不同节点之间,代码块并行执行。这是因为在每个节点中都创建了一个单独的Lock对象吗?有人能给我建议吗?
代码样本
//Service Class
@Service
class MyServiceClass {
private final Lock globalLock;
@Autowired
public MyServiceClass(@Qualifier("globalLock")
我想使用ZooKeeper实现简单的类
public class ResourceMonitor implements Watcher {
String name = "/zk_test3";
ZooKeeper zk;
public ResourceMonitor() throws IOException {
zk = new ZooKeeper("localhost:8000", 3000, this);
}
public void waitAndGet() {
}
pu
我有一个Spring引导应用程序,其中有用于缓存的Hazelcast。当使用Hazelcast群集多个实例时,我在解锁操作上有此异常:
java.lang.IllegalMonitorStateException: Current thread is not owner of the lock! -> Owner: 33ce48f8-dda3-471f-abae-994d25dcc030, thread ID: 55
at com.hazelcast.concurrent.lock.operations.UnlockOperation.unlock(UnlockOperation
我已经开始在事件驱动的体系结构中实现微服务。因此,我的一些服务是发布事件和侦听其他事件。例如,当一个操作依赖于单个事件时,实现侦听器是非常简单的;
ORDER SERVICE
1. Publishes `ORDER_INTENT_EVENT` then
2. Listens for `CREDIT_AVAILABLE_EVENT` then
3. Finishes the `Order`
CREDIT SERVICE
1. Listens for `ORDER_INTENT_EVENT` then
2. Verifies if the client has credit