我对Kafka Streams TopologyTestDriver(https://kafka.apache.org/20/javadoc/org/apache/kafka/streams/TopologyTestDriver.html)有疑问。
如果您使用Java文档,则可以清楚地看到它支持Sinks ...
通过此类可以更轻松地编写测试来验证行为 使用Topology或StreamsBuilder创建的拓扑。你可以测试 具有单个处理器的简单拓扑,或者非常复杂 具有多个源,处理器,接收器或 子拓扑
和
如果拓扑的处理器将消息转发到接收器,则您的测试可以 然后使用这些输出消息来验证它们是否符合预期 结果
我有一个类似followin的Stream配置
stream.
.join(...)
.to("topicA")
当我尝试阅读“ topicA” ...
topologyTestDriver.readOutput("topicA");
它抱怨“ topicA”不存在。
我调试了TopologyTestDriver,似乎它有一个名为ProcessorTopology processorTopology
的成员变量,也有一个名为Map<String, SinkNode> sinksByTopic
的成员,在那里我看到了'topicA'。
此字段接收其他ByTopic,然后初始化,从未通过TopologyTestDriver进行访问,而readOutput除outputRecordsByTopic.get(...)
之外均未检查。
所以我的问题是,这是一个错误还是我应该使用其他方法然后再使用readOutput来获取本主题的内容?