Я читал много статей, в которых объясняются реализации Apache Storm для приема данных из Apache Flume или Apache Kafka. Мой главный вопрос остается без ответа после прочтения нескольких статей. В чем основное преимущество использования Apache Kafka или Apache Flume? Почему бы не собирать данные из источника непосредственно в Apache Storm?

Чтобы понять это, я заглянул в эти рамки. Поправьте меня, если я ошибаюсь.

Apache Flume - это сбор данных из источника и отправка данных в приемник. В данном случае раковиной является Apache Storm.

Apache Kafka - это сбор данных из источника и их хранение в очереди сообщений до тех пор, пока Apache Storm не обработает их.

4
stefana 3 Мар 2015 в 15:52

1 ответ

Лучший ответ

Я предполагаю, что вы имеете дело со случаем использования алгоритмов непрерывных вычислений или аналитики в реальном времени.

Ниже приводится то, через что вам придется пройти, если вы НЕ используете Kafka или какую-либо очередь сообщений:

(1) You will have to implement functionality like consistency of data.

(2) You are ready to implement replication on your own

(3) You are ready to tackle a variety of failures and ready to build a fault tolerant system.

(4) You will need to create a good design so that your producer and consumer are completely decoupled.

(5) You will have to implement persistence. What happens if your consumer fails?

(6) What happens to fault resilience? Do you want to take the entire system down when your consumer fails?

(7) You will have to implement delivery guarantees as well as ordering guarantees.

Все вышеперечисленное является неотъемлемой частью очереди сообщений (Kafka и т. Д.), И вам, конечно, не захочется изобретать здесь колесо.

4
Yavar 3 Мар 2015 в 17:07