假设数据是用Kafka编写的。我想编写一个函数来在Kafka中返回Stream
无界值。以下是我的功能模板:
public static Stream<Byte[]> getData(String topic, int from){
// some kafka configurations
consumer.subscribe(topic, listener);
ConsumerRecords<String, byte[]> records;
Stream<Byte[]> res ;
while (true){
records = consumer.poll(100);
for (ConsumerRecord<String, byte[]> record : records) {
res.add(record);
}
return res;
}
}
我知道某处语法错误,但这就是我需要的。例如,在main
函数中,有人获得getData
函数的值:
Stream<Byte[]> results = getData("topic", 0);
并且数据作为流一次又一次地推送到results
变量。
我怎么能这样做,有可能吗?