Java 应用程序群集时在两个JVM之间共享数据

Java 应用程序群集时在两个JVM之间共享数据,java,spring,jvm,cluster-computing,Java,Spring,Jvm,Cluster Computing,我正在开发一个spring引导应用程序,它可以集群到许多实例中 会话数据由Spring Session+Hazelcast存储和处理,但问题是在这种情况下。我有一个包含一组对象的类: @ServerEndpoint(value="/chat/{username}") public class ChatEndpoint { private Session session; private static Set<ChatEndpoint> chatEndpoints

我正在开发一个spring引导应用程序,它可以集群到许多实例中

会话数据由Spring Session+Hazelcast存储和处理,但问题是在这种情况下。我有一个包含一组对象的类:

@ServerEndpoint(value="/chat/{username}")
public class ChatEndpoint {

    private Session session;
    private static Set<ChatEndpoint> chatEndpoints 
      = new CopyOnWriteArraySet<>();
    private static HashMap<String, String> users = new HashMap<>();

    @OnOpen
    public void onOpen(
      ....
    }

    @OnMessage
    public void onMessage(Session session, Message message) 
      throws IOException {
      ....
    }
   ....
}

在这种情况下,数据在JVM的每个实例上都是本地可用的。如何在所有JVM之间共享此数据?

由于您的技术堆栈中已有Hazelcast可用,请使用:

Hazelcast是领先的内存数据网格解决方案。它的爪哇 缓存解决方案使组织能够按预期进行扩展 通过提供内存访问来实现关键任务企业应用程序 经常使用的数据。Hazelcast存储频繁访问的数据 在内存中并跨弹性可伸缩的数据网格。这使得 用于动态集群和池化内存的任何计算机网络 和处理器来加速应用程序性能


您可以将数据集放入使用Hazelcast创建的缓存中,并访问群集中其他节点上的数据

如果您从其他网页复制文本,则应将其标记为引用并添加源链接。否则它可能会侵犯版权。