“Kafka Spout”和“kafka Consumer”有什么区别?

Sam*_*rge 4 apache-kafka apache-storm

“Kafka Spout”和“Kafka Consumer”都从 Kafka Brokers 检索数据,目前我知道的 spout 用于与 Storm 通信,而消费者则用于与其他任何东西进行通信。

-但是,技术上有什么区别?

- 或者如果我使用消费者提取数据然后使用“Storm Spout”接收它和如果我只使用“Kafka Spout”然后将其添加到我的Storm Topology Builder的setSpout()之间有什么区别;功能

- 以及何时使用 Consumer 或 Kafka Spout

Mic*_*oll 5

A/“Kafka Spout”是一个 Storm 特定的适配器,用于从 Kafka 读取数据到 Storm 拓扑中。在幕后,Kafka spout 实际上使用了 Kafka 内置的“Kafka 消费者”客户端。

从技术上讲,不同之处在于 Kafka spout 是 Kafka 消费者客户端之上的一种风暴感知“包装器”。

在 Storm 中,您通常应该始终使用包含的 Kafka spout(请参阅https://github.com/apache/storm/tree/master/external/storm-kafka或者,对于使用 Kafka 所谓的“new”的 spout 实现消费者客户端,https://github.com/apache/storm/tree/master/external/storm-kafka-client)。实现你自己的情况将是一种非常罕见的情况——也许最可能的情况是,如果现有的 Kafka spout 中存在一个错误,你需要解决这个问题,直到 Storm 项目修复上游的错误。