是否可以为 Hazelcast 客户端使用分布式对象事件?

Is it possible to use the Distributed Object Events for Hazelcast Client?

如文档中所述:http://docs.hazelcast.org/docs/latest-development/manual/html/Distributed_Events/Event_Listeners_for_Clients.html

客户端不支持分布式对象事件。有什么方法可以检测服务器上给定地图的事件并使用客户端实例刷新增量。我有集中式 HZ 分布式缓存。每次服务器端发生变化;我希望客户端通知能够发送 changes/delta.

客户端支持http://docs.hazelcast.org/docs/latest-development/manual/html/Distributed_Events/Cluster_Events/Listening_for_Distributed_Object_Events.html

我想知道是否支持MAp/Distributed地图事件 http://docs.hazelcast.org/docs/latest-development/manual/html/Distributed_Events/Distributed_Object_Events/Listening_for_Map_Events.html

您可以在客户端使用MapListeners,您可以观察到几种类型的事件:

  • EntryAddedListener
  • EntryRemovedListener
  • EntryUpdatedListener
  • MapClearedListener
  • EntryEvictedListener
  • ...

查看 MapListener JavaDoc 了解更多详情。

用法很简单:

HazelcastInstance client = HazelcastClient.newHazelcastClient();
client.getMap("test").addEntryListener(new EntryAddedListener<String, String>() {
    @Override
    public void entryAdded(EntryEvent<String, String> event) {
        System.out.println("Added: " + event.getKey() + "=" + event.getValue());
    }
}, true);