2017-06-05 118 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

相關問題