2017-06-05 195 views
0

我正在研究可以集群到多个实例中的spring-boot应用程序。在应用程序群集时在两个JVM之间共享数据

会话数据由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之间共享?

回答

1

如您有Hazelcast在你的技术堆栈已经上市,使用caching facility of Hazelcast

Hazelcast是领先的内存数据网格解决方案。它的java 缓存解决方案使组织能够通过向常用数据提供内存访问 来可预测缩放 任务关键型企业应用程序。 Hazelcast在内存中存储经常访问的数据 ,并跨越可弹性扩展的数据网格。这使得任何机器网络都可以动态集群并共享内存 和处理器以加速应用程序性能。

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

+0

如果您从其他网页复制文本,则应将其标记为报价并添加源的链接。否则,它可能是版权侵犯。 – dunni

相关问题