首页 > 解决方案 > 流处理器(低级 API)源处理器如何从主题中获取数据?

问题描述

我是kafka流处理器的新手,遇到了“拓扑”的关键概念。

我创建了从“源主题”读取的源处理器,如下所示:

Topology topology = new Topology();
topology.addSource("SOURCE", "source-topic");

上面的代码片段将创建(如果我的理解是正确的)一个名为“SOURCE”的源流处理器,并会监听 kafka 主题“source-topic”。

我没有为这个“SOURCE”流处理器编写任何代码,它如何能够从 kafka 主题中获取消息?它是由 kafka 流 API 本身处理的“特殊”类型的流处理器吗?

谁能帮我理解这一点?

标签: apache-kafkaapache-kafka-streams

解决方案


拓扑从源节点开始从 Kafka 获取数据,然后包含一堆处理器节点来执行转换,最后以接收器节点结束,以将转换后的数据写入 Kafka。

addSource()将在您的拓扑中创建一个源节点。源节点使用指定主题的记录并将它们传递给拓扑中的下一个节点。它不执行任何其他逻辑。在幕后,一个源节点将启动一个 Kafka Consumer 来获取记录。

Kafka Streams API 使您能够专注于您的逻辑(在处理器中),而不是处理消费者和生产者。


推荐阅读