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。
我有以下用例
我在两台不同的机器上有两个 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。