如何读取Hazelcast喷气机的黑兹拉广播IMDG数据。
在我的例子中,我需要Hazlecast (分布式缓存)来存储将来的数据,还需要jet来执行批处理和流处理。
因此,我将使用Hazelcast IMDG(MapStore)保存数据,并使用Hazelcast jet进行过滤。
public class Test {
HazelcastInstance hz = Hazelcast.newHazelcastInstance();
JetInstance jet = Jet.newJetInstance();
public static void main(String[] args) {
Test t = new Test();
t.loadIntoIMap();
t.readFromIMap();
}
public void loadIntoIMap() {
IMap<String, String> map = hz.getMap("my-distributed-map");
// Standard Put and Get
map.put("1", "John");
map.put("2", "Mary");
map.put("3", "Jane");
}
public void readFromIMap() {
System.err.println("--manu---");
jet.getMap("s").put("1", "2");
System.err.println(jet.getMap("s").size());
System.err.println(jet.getMap("my-distributed-map").size());
}
}我们需要两个单独的配置( jet和IMDG),还是在单个配置中,我可以在jet内部共享Hz IMap数据。
我有点困惑于jet和Hazelcast IMDG
发布于 2021-10-12 22:08:12
答案因要使用的版本而异。
IMDG可达4.2,喷气4.5
黑兹尔卡斯特喷气机是建立在黑兹尔卡斯特IMDG之上。启动Jet实例时,将自动运行IMDG实例。有从Jet检索IMDG实例的JetInstance#getHazelcastInstance方法,还有配置IMDG特定信任的JetConfig#setHazelcastConfig。
您可以在Jet中使用com.hazelcast.jet.pipeline.Sources#map(String)访问集群中的地图
您不应该在同一台机器上分别启动IMDG和Jet。但是,您可以创建两个集群,一个IMDG,一个Jet,并使用com.hazelcast.jet.pipeline.Sources#remoteMap(String, ClientConfig)和其他数据结构相似的Jet连接。
如果您已经在使用Hazelcast,那么很可能是这个版本。
Hazelcast 5.0
在最近发布的5.0版中,这两个产品合并在一起。只有一件艺术品可以使用- com.hazelcast:hazelcast。您只需创建一个Hazelcast实例,如果启用,您可以使用HazelcastInstance#getJet从那里获得Jet
5.0与IMDG4.2是100 %兼容的,只需更改依赖项,并且大部分兼容Jet4.5,但是需要进行一些代码更改。
https://stackoverflow.com/questions/69537832
复制相似问题