在获取有关主题的kstream之后如何从ktable中读取完整的历史记录

时间:2019-07-09 04:39:39

标签: java apache-kafka apache-kafka-streams

我正在尝试从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

0 个答案:

没有答案