分布式同步执行

时间:2011-06-22 19:38:25

标签: java distributed execution synchronized

我正在努力完成一些在概念方面很容易理解的东西。我想在不同的机器之间同步一段java代码。有两个程序在不同的机器上运行,不能同时运行。

我也听说过zookeeper,jgroups和akka,但是在阅读文档时,我觉得有点矫枉过正。有没有人知道是否有更直接的使用?

提前致谢,

3 个答案:

答案 0 :(得分:3)

如果你提到的所有技术(也看一下Terracotta)都太复杂了,可能是简单的数据库锁定?

SELECT FOR UPDATE语句将锁定给定的数据库记录,使运行此查询的其他客户端阻止。简单,安全,可靠。

答案 1 :(得分:3)

我认为Hazelcast的分布式锁定(http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html#lock)可能会有所帮助。 Hazelcast是相对轻量级的,所以希望不要过度。

答案 2 :(得分:2)

一个非常基本的解决方案是使用RMI

决定使用一台机器作为主机,它有一个使用mutex锁的方法,只允许一个mthod来电者通过。

在运行特殊的java代码块之前,必须通过RMI从所有其他从属实例调用此特殊方法。