getMap() + 同步地图的后续更改



我有一个IMap,启用了日志。

使用客户端(Hazelcast或Jet(,我想获得完整的地图,并获得所有后续更新以丰富地图。

我怎样才能做到这一点?

如果执行 .getMap((,然后调用 getJournalMap(( 或 .addEntryListener((,我担心在 getMap(( 和 addEntryListener(( 调用之间丢失更新的可能性。

有没有更直观的方法来获取完整的地图+更新? 谢谢

您正在寻找的是HazelcastContinues 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");

目前,事件日志没有公开用于读取 Hazelcast IMDG 中的事件日志的公共 API。事件日志可用于将事件数据流式传输到 Hazelcast Jet,因此应与 Hazelcast Jet 结合使用。您可以在此处查看一些示例:https://github.com/hazelcast/hazelcast-jet-code-samples/tree/0.7-maintenance/event-journal

最新更新