gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:57:46 25 4
gpt4 key购买 nike

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

session 数据由 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,因此请使用 caching facility of Hazelcast :

Hazelcast is the leading in-memory data grid solution. Its java caching solution enables organizations to predictably scale mission-critical enterprise applications by providing in-memory access to frequently used data. Hazelcast stores frequently accessed data in-memory and across an elastically scalable data grid. This enables any network of machines to dynamically cluster and pool both memory and processors to accelerate application performance.

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

关于java - 当应用程序集群时在两个 JVM 之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44369259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com