2016-07-01 2 views
1

как «Kafka Spout», так и «Kafka Consumer» извлекают данные от Kafka Brokers, носик до сих пор я знаю для общения со Storm, а Consumer - с чем-то еще.В чем разница между «Kafka Spout» и «kafka Consumer»?

-но все же, в чем разница технически?

- или какая разница. Если я вытащил данные с помощью Потребителя, тогда получите его с помощью «Storm Spout» и между ними, если я просто использовал «Kafka Spout», а затем добавьте его в setSpout Storm Topology Builder(); Функция

й когда использовать Потребитель, или Кафка Spout

ответ

3

А/к «Кафка носик» является адаптером Storm-специфичен для чтения данных из Кафки в топологию Бури. За кулисами, капот Kafka фактически использует встроенный клиент Kafka «Kafka».

Технически разница заключается в том, что носик Kafka является своего рода «оберткой», напоминающей шторм, поверх потребительского клиента Kafka.

В Storm вы обычно должны всегда использовать входящий в комплект комплект поставки Kafka (см. https://github.com/apache/storm/tree/master/external/storm-kafka или для реализации носика, который использует так называемый «новый» потребительский клиент Kafka, https://github.com/apache/storm/tree/master/external/storm-kafka-client). Было бы очень редким случаем реализовать свой собственный - возможно, наиболее вероятным случаем было бы, если бы ошибка в существующем носике Kafka была необходима, чтобы проект Storm исправил ошибку вверх по течению.

+0

большое спасибо! теперь ясно, , но у меня осталось еще два вопроса: (1) - «должен» класс KafkaSpout расширять базовый/богатый Spout? (2) - как KafkaSpouts - это обертки, знающие шторм, это замена для «штормового лифта», получающего те же данные от «потребителя кафки»? или «штормовой носик» должен существовать в любом случае? Я имею в виду: что (производитель-> брокер-> kafkaSpout-> болты-> buildTopology) или что (производитель-> брокер-> kafkaSpout-> stormSpout-> bolts-> buildTopology) –

+0

FWIW, оба включенных кафки в Apache Storm расширяют 'BaseRichSpout'. Кроме того, a/Kafka носик, по определению, носик Storm. Таким образом, поток (производитель-> брокер-> kafkaSpout-> болты -> ...). Я бы рекомендовал (повторно) прочитать документацию Storm. –