我有一个启用了日记功能的IMap。
我想使用客户端(Hazelcast或Jet)获得完整地图,并获取所有后续更新以丰富地图。
我该如何实现?
如果执行.getMap(),然后调用getJournalMap()或.addEntryListener(),则我担心在getMap()和addEntryListener()调用之间缺少更新的可能性。
是否有更直观的方法来获取完整的地图和更新? 谢谢
答案 0 :(得分:2)
您正在寻找的是Hazelcast的Continues Query Cache
功能。请参阅https://docs.hazelcast.org/docs/3.11/manual/html-single/index.html#continuous-query-cache
以下是来自客户端的示例用法
HazelcastInstance instance = Hazelcast.newHazelcastInstance();
QueryCacheConfig queryCacheConfig = new QueryCacheConfig("cache");
PredicateConfig predicateConfig = new PredicateConfig().setImplementation((Predicate) entry -> true);
queryCacheConfig.setPredicateConfig(predicateConfig);
ClientConfig clientConfig = new ClientConfig();
clientConfig.addQueryCacheConfig("map", queryCacheConfig);
HazelcastInstance client = HazelcastClient.newHazelcastClient(clientConfig);
IMap<Object, Object> map = client.getMap("map");
QueryCache<Object, Object> cache = map.getQueryCache("cache");
答案 1 :(得分:0)
当前,事件日志未公开用于读取Hazelcast IMDG中事件日志的公共API。事件日志可用于将事件数据流式传输到Hazelcast Jet,因此应与Hazelcast Jet一起使用。您可以在此处看到一些示例:https://github.com/hazelcast/hazelcast-jet-code-samples/tree/0.7-maintenance/event-journal