【问题标题】:What is the difference between a "Kafka Spout" and a "kafka Consumer"?“Kafka Spout”和“kafka Consumer”有什么区别?
【发布时间】:2016-11-03 07:32:50
【问题描述】:

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

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

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

-以及何时使用 Consumer 或 Kafka Spout

【问题讨论】:

    标签: apache-kafka apache-storm


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢!现在很清楚,但我还有 2 个小问题,(1)-“应该”KafkaSpout 类扩展基本/丰富的 Spout 吗? (2)-因为 KafkaSpouts 是一个风暴感知包装器,它是否可以替代从“kafka 消费者”接收相同数据的“风暴喷口”?还是应该存在“风暴喷口”?我的意思是:那个(producer->broker->kafkaSpout->bolts->buildTopology)或者那个(producer->broker->kafkaSpout->stormSpout->bolts->buildTopology)
    • FWIW,Apache Storm 中包含的两个 Kafka spout 扩展 BaseRichSpout。此外,根据定义,Kafka spout 是 Storm spout。所以流程是(producer->broker->kafkaSpout->bolts->...)。我建议(重新)阅读 Storm 文档。
    猜你喜欢
    • 2023-03-02
    • 2018-07-15
    • 2017-06-20
    • 2018-12-07
    • 2020-08-20
    • 2020-12-27
    • 2019-10-11
    • 2020-11-19
    • 1970-01-01
    相关资源
    最近更新 更多