如何在tomcat 6.0集群环境中实现缓存同步?

时间:2010-08-19 12:05:41

标签: caching messaging tomcat6 cluster-computing

我目前正致力于迁移Web应用程序以在群集中运行。此应用程序使用缓存。如果用户保存了某些内容,则会重新加载某些缓存。我想通知集群的其他节点,以便所有节点刷新它们的缓存。

tomcat服务器似乎有一个群发消息。(Tribes) 我想知道我是否可以将此消息传递用于我的任务以及如何让事件监听器运行一整天。

亲切的问候    迈克尔

3 个答案:

答案 0 :(得分:0)

可以使用它并且不需要启动线程等。 发送类实例需要tomcat lib目录中的一个jar消息类。

欢呼声     Michae

答案 1 :(得分:0)

您可以使用Hazelcast主题。它是一个非常轻量级的发布/订阅消息。每个节点都会收听该主题。当用户在任何节点上保存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(刷新);

答案 2 :(得分:0)

如果您使用的是手写CACHE,那么您可以使用消息广播/接收来同步缓存B / W群集的所有节点,您可以使用JGROUP

for ex:node一个更新缓存,它只是广泛地将消息转发给其他节点以重新填充(refresh)他们的缓存