Hazelcast - 使用 IMap 注册地图监听器的正确位置

Hazelcast- Right place to register a Map Listener with a IMap

我有以下用例

我在两台不同的机器上有两个 Spring 启动应用程序。一个应用程序是 运行 嵌入式 hazelcast,另一个应用程序正在连接到 hazelcast 运行 嵌入式。

我有两张地图 - 一张 IMap 和一张 MultiMap。我想添加一个 EntryEvictionListener 到 IMAP。我想做的是从 IMap 中逐出一个条目,转到 MuliMap 并从中删除相应的条目。

我正在使用 Spring java 配置。我想要关于我应该在哪里注册监听器的建议 IMap。 class 实现了 EntryEvictionListener 接口(将被注册到 IMap),它是一个 spring 托管 bean 并且内部还有其他 spring 托管 bean autowired

我计划在 spring 引导应用程序中注册 mapListener,该应用程序连接到其他 spring 引导应用程序中的嵌入式 hazelcast 运行。我打算在 postconstruct 方法中执行此操作,因此它只运行一次。

这是一个好方法吗?

提前致谢。

编辑-

           Class CustomListener implements HazelcastInstanceAware,EntryEvictedListener{

   private HazelcastInstance hazelcastInstance;

   @Override
   public void setHazelcastInstance(HazelcastInstance hazelcastInstance){

   this.hazelcastInstance=hazelcastInstance;

   }

   @Override
   public void entryEvicted(EntryEvent<String,String> event){

   // get multi map from hazelcast instance

   //remove value

  }


}

以上有效!

@indraneel-bende,请检查:http://docs.hazelcast.org/docs/latest-development/manual/html/Distributed_Events/Distributed_Object_Events/Listening_for_Map_Events.html#page_Registering+Map+Listeners

如果您使用 Hazelcast-Spring 配置,您可以在 Hazelcast 配置中添加侦听器,可以像文档中的 XML 配置或 Java 配置,仅此而已。确保你的 MapListener 是一个 Spring bean。