Java应用程序复制状态

Java应用程序复制状态,java,jgroups,Java,Jgroups,我在多台机器上运行相同的服务器端应用程序 我想提供一种方法来推动所有应用程序的更改。我更感兴趣的是对象本身的状态/属性更改,而不是太多的文件复制等 因此,我设想一个管理控制台,在那里我将更改一些属性,并使更改影响每个应用程序的状态 我目前正在研究,这是一个可靠的多播通信工具包。在这种情况下,每个应用程序都将侦听同一个多播组,并且管理控制台将向该组发送更改 是否有其他可用的解决方案/技术?其他简单的解决方案可能包括轮询中心数据库或中心文件 一个快速的谷歌搜索出现了:。这看起来很有希望,但我没有这方

我在多台机器上运行相同的服务器端应用程序

我想提供一种方法来推动所有应用程序的更改。我更感兴趣的是对象本身的状态/属性更改,而不是太多的文件复制等

因此,我设想一个管理控制台,在那里我将更改一些属性,并使更改影响每个应用程序的状态

我目前正在研究,这是一个可靠的多播通信工具包。在这种情况下,每个应用程序都将侦听同一个多播组,并且管理控制台将向该组发送更改


是否有其他可用的解决方案/技术?

其他简单的解决方案可能包括轮询中心数据库或中心文件


一个快速的谷歌搜索出现了:。这看起来很有希望,但我没有这方面的经验。

有很多技术,如corba、rmi等。但是,如果您想要一个没有中央服务器的完全分布式系统,我个人推荐
JGroups

如果你有一个中央服务器,你可以

  • 让服务器将更改推送到所有客户端。服务器必须知道所有客户机,可以直接知道,也可以让客户机自己注册
  • 让客户端轮询服务器
      来自Hadoop项目的Apache ZooKeeper可能也很有趣。我没有这方面的经验,但从网页上我发现它提供了一个分层数据模型。每个对更改感兴趣的应用程序都可以监视特定节点中的更改,并根据更改采取行动


      对于更复杂的场景,我无法给出足够的建议。
      本质上,terracotta将堆的一部分分发到网络,这意味着应用程序共享堆的一部分。共享堆中一个应用程序所做的更改将对共享堆的其他应用程序可见。主要缺点是terracotta需要一个专用服务器,因为它是一个中心辐射式设计。

      我必须研究hazelcast。谢谢