我有一个启用了日志的 IMap。
使用客户端(Hazelcast 或 Jet),我想获得完整的地图,并获得所有后续更新以丰富地图。
我怎么能做到这一点?
如果执行 .getMap(),然后调用 getJournalMap() 或 .addEntryListener(),我担心在 getMap() 和 addEntryListener() 调用之间可能会丢失更新。
有没有更直观的方式来获得完整的地图+更新?谢谢
我有一个启用了日志的 IMap。
使用客户端(Hazelcast 或 Jet),我想获得完整的地图,并获得所有后续更新以丰富地图。
我怎么能做到这一点?
如果执行 .getMap(),然后调用 getJournalMap() 或 .addEntryListener(),我担心在 getMap() 和 addEntryListener() 调用之间可能会丢失更新。
有没有更直观的方式来获得完整的地图+更新?谢谢
您正在寻找的是Continues Query Cache
Hazelcast 的功能。请参阅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");
目前,事件日志不公开用于读取 Hazelcast IMDG 中的事件日志的公共 API。事件日志可用于将事件数据流式传输到 Hazelcast Jet,因此应与 Hazelcast Jet 结合使用。你可以在这里看到一些例子:https ://github.com/hazelcast/hazelcast-jet-code-samples/tree/0.7-maintenance/event-journal