2010-08-19 76 views
3

我目前正在進行遷移Web應用程序以在羣集中運行。此應用程序使用緩存。如果用戶保存某些內容,則會重新加載這些緩存中的一部分。我想通知羣集的其他節點關於此,以便所有節點刷新其緩存。如何在tomcat 6.0集羣環境中實現緩存同步?

看來,tomcat服務器有一個組消息內置。(部落) 我想知道如果我可以使用此消息傳遞給我的任務,以及如何讓事件監聽器運行一整天。

與親切的問候 邁克爾

+0

如何緩存目前實施的?的Ehcache?還是手寫的東西? – skaffman 2010-08-19 12:13:49

+0

緩存(s)是手寫的,部分使用servletcontext或文件系統以及靜態字段。 – Michael 2010-08-27 13:30:34

回答

0

它可以使用它,也沒有必要啓動一個線程等。 發送類實例需要tomcat lib目錄中的消息類的jar。

歡呼 Michae

0

可以使用Hazelcast主題。這是一個非常輕量級的pub/sub消息。每個節點都將聽取該主題。當用戶在任何節點上保存smth時,只需輸入一些消息「REFRESH」。在接收每個節點可以做任何你想要的。 下面是代碼來做到這一點:

String REFRESH = "REFRESH"; 
ITopic<String> topic = Hazelcast.getTopic("myTopic"); 
topic.addMessageListener(new MessageListener<String>() { 
     public void onMessage(String msg) { 
      if(REFRESH.equals(msg){ 
      //do refresh 
      } 
     } 
    }); 

當用戶保存某事//。
topic.publish(REFRESH);

0

如果您正在使用手寫CACHE,則可以使用消息廣播/接收同步緩存B/W羣集的所有節點,因此可以使用JGROUP

爲前節點A更新高速緩存,它只是撒施消息給其他節點以補充(refresh)緩存