我正在尝试从ktable中读取完整的数据/记录,但是观察到的是我只能看到当前记录,即仅对我可见的消息,并且无法打印所有以前的记录。< / p>
我正在尝试使用Printed.sysOut()方法将数据打印到控制台。
KTable<String, String> kTableMap = builder.table("test_topic");
kTableMap.toStream().map((key, value) -> new KeyValue<>(key, value))
.foreach(new ForeachAction<String, String>() {
public void apply(String key, String value) {
System.out.println("From MAP " + key + ": Value " +
value);
}
});
// Second approach
System.out.println("Printing to console");
builder.table("demo_topic").toStream().print(Printed.toSysOut());
System.out.println("Printing to console is done");
在处理流时,我没有看到任何错误,但是实际结果与预期不符。
假设在获取流之后,我已经发送了以下两条消息:
key: test1, Value: demo1
key: test2, value: demo2
我能够看到以上消息并能够对其进行处理。
一段时间后,我又发送了以下两条消息:
key: test3, value: demo3
key: test4, value: demo4
我也可以在控制台上看到上述消息,但是问题是我看不到已发送的初始消息。
发送后两条消息后的预期结果:
key: test1, value: demo1
key: test2, value: demo2
key: test3, value: demo3
key: test4, value: demo4