2016-07-01 78 views
1

「Kafka Spout」和「Kafka Consumer」都是從卡夫卡經紀商那裏獲取數據,目前爲止我所知道的是用於與Storm進行溝通的消費者,而消費者則與其他任何人進行交流。「Kafka Spout」和「kafka Consumer」之間的區別是什麼?

- 但仍然,技術上有什麼區別?

- 或者,如果我使用消費者提取數據,然後使用「Storm Spout」接收數據,如果我只是使用「Kafka Spout」,然後將其添加到我的Storm拓撲生成器的setSpout ();功能

-and時使用消費者或卡夫卡噴

回答

3

A /所述「卡夫卡噴口」是一個特定的風暴適配器從卡夫卡數據讀入一個風暴拓撲。在幕後,卡夫卡噴壺實際上使用卡夫卡內置的「卡夫卡消費者」客戶端。

從技術上說,不同之處在於卡夫卡壺嘴是卡夫卡消費者客戶端上的一種風暴意識「包裝物」。

風暴,你通常應該始終使用包括卡夫卡出口(見https://github.com/apache/storm/tree/master/external/storm-kafka或者,對於使用卡夫卡的所謂「新」的消費客戶,https://github.com/apache/storm/tree/master/external/storm-kafka-client壺嘴實現)。這將是一個非常罕見的情況來實現你自己的 - 也許最有可能的情況是,如果現有Kafka噴口中有一個錯誤,你需要解決,直到Storm項目修復了上游的錯誤。

+0

非常感謝你!現在很清楚, 但我還有兩個小問題, (1) - 「應該」KafkaSpout課程擴展了一個基本/豐富的Spout? 012f(2) - 因爲KafkaSpouts是一款Storm-aware包裝器,它是從「kafka消費者」那裏接收相同數據的「風暴噴口」的替代品嗎?或者「暴風雨噴口」應該存在嗎? 我的意思是:(生產者 - >經紀人 - > kafkaSpout->螺栓 - > buildTopology) 或那(生產者 - >經紀人 - > kafkaSpout-> stormSpout-> bolt-> buildTopology) –

+0

FWIW,包括卡夫卡噴口,包括在Apache Storm中擴展'BaseRichSpout'。 另外,根據定義,Kafka噴口是Storm噴口。所以流程是(producer-> broker-> kafkaSpout-> bolts - > ...)。我建議(重新)閱讀Storm文檔。 –

相關問題