我正在使用KStream.to(“ outputtopic”);写输出主题。 在apache文档中提到,它将自动创建传递给to()的主题。如何使用该主题中的消息?
我可以将consumer.subscribe()用于输出主题和轮询消息吗?
KStreamBuilder builder = new KStreamBuilder();
builder.stream(topic).filterNot((k, v) -> {
v.toString().contains(tid);
}).to("outputtopic");
streams = new KafkaStreams(builder, config);
streams.start();
consumer.subscribe(Arrays.asList("outputtopic"));
答案 0 :(得分:1)
builder.stream(topic).filterNot((k, v) -> {
v.toString().contains(tid);
}) // i.e., without the last `to()` method
这一系列方法的结果是一个KStream
。如果您的问题是关于如何在同一应用程序中继续对由此产生的KStream
进行操作,请执行以下操作:
KStream<..., ...> myStream = builder.stream(topic).filterNot((k, v) -> {
v.toString().contains(tid);
});
myStream.to("outputtopic");
// Then continue to use the `myStream` instance for further work.
myStream.map(....).aggregate(...);
如果您的问题是关于如何从不同的应用程序中读取输出主题的,则可以通过从另一个Kafka Streams应用程序,KSQL,普通的Kafka使用者(通过订阅)等。