Java 应用程序群集时在两个JVM之间共享数据
我正在开发一个spring引导应用程序,它可以集群到许多实例中 会话数据由Spring Session+Hazelcast存储和处理,但问题是在这种情况下。我有一个包含一组对象的类: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
@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创建的缓存中,并访问群集中其他节点上的数据 如果您从其他网页复制文本,则应将其标记为引用并添加源链接。否则它可能会侵犯版权。