我对Ignite的Streaming部分有疑问。
据我所知,这是将数据导入缓存的方法,但我也看到我们可以配置流接收器以应用其他一些自定义逻辑。
所以我尝试创建一个带接收器的类和一个将数据注入流中的类(所以在服务器模式下有2个主实例和2个Ignite实例),但我“只是”将数据放入流媒体的缓存中(否)任何处理到接收器的自定义逻辑)。所以,我问我是否遗漏了一些东西,或者我是否不太了解什么是流入Ignite的流。
如果我将发件人部分放入接收器,我就有了打印件。
有谁知道我在做什么(或理解)错了?
接收者类:
public class Receiver {
public static void main(String[] args){
IgniteConfiguration igniteConfig = new IgniteConfiguration();
CacheConfiguration<String, String> cacheConfig = new CacheConfiguration<>("CacheStream");
igniteConfig.setCacheConfiguration(cacheConfig);
Ignite ignite = Ignition.getOrStart(igniteConfig);
IgniteDataStreamer<String, String> streamer = ignite.dataStreamer("CacheStream");
streamer.receiver(StreamVisitor.from((cacheLambda, e) -> {
System.out.println("Value : " + e.getValue());
}));
}
}
发件人类:
public class Sender {
public static void main(String[] args){
IgniteConfiguration igniteConfig = new IgniteConfiguration();
CacheConfiguration<String, String> cacheConfig = new CacheConfiguration<>("CacheStream");
igniteConfig.setCacheConfiguration(cacheConfig);
Ignite ignite = Ignition.getOrStart(igniteConfig);
IgniteDataStreamer<String, String> streamer = ignite.dataStreamer("CacheStream");
for(int i = 0 ; i < 10 ; i++){
streamer.addData("key-"+i, "value-"+i);
}
streamer.flush();
}
}
祝你好运
答案 0 :(得分:1)
ignite.dataStreamer(“CacheStream”)不返回您之前创建的相同数据流,每次都会创建新的数据流。
因此,在您的情况下,您配置了2个不同的数据广播器,并使用没有配置接收器的流传输上传数据。