Apache Kafka vs Apache Storm

Apache Kafka: Distributed messaging system
Apache Storm: Przetwarzanie Wiadomości W Czasie Rzeczywistym

Jak możemy wykorzystać obie technologie w potoku danych w czasie rzeczywistym do przetwarzania danych zdarzeń?

Pod względem potoku danych w czasie rzeczywistym oba wydają mi się wykonywać pracę identyczną. Jak możemy wykorzystać obie technologie w potoku danych?

Author: Peter Mortensen, 2014-02-16

6 answers

Używasz Apache Kafka jako rozproszonej i solidnej kolejki, która może obsługiwać dane o dużej objętości i umożliwia przekazywanie wiadomości z jednego punktu końcowego do drugiego.

Storm to nie Kolejka. Jest to system, który rozproszył możliwości przetwarzania w czasie rzeczywistym, co oznacza, że można wykonywać wszystkie rodzaje manipulacji na danych w czasie rzeczywistym równolegle.

Wspólny przepływ tych narzędzi (jak wiem) przebiega następująco:

Real-time-system -- > Kafka -- > Storm -- > NoSql --> BI (opcjonalne)

Więc Twoja aplikacja w czasie rzeczywistym obsługuje dane o dużej objętości, wysyła je do kolejki Kafka. Storm wyciąga dane z Kafki i stosuje pewne wymagane manipulacje. W tym momencie zazwyczaj chcesz uzyskać pewne korzyści z tych danych, więc albo wysyłasz je do jakiegoś Nosql db w celu dodatkowych obliczeń BI, albo możesz po prostu odpytywać ten NoSql z dowolnego innego systemu.

 139
Author: forhas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-16 07:53:08

Kafka i burza mają nieco inny cel:

Kafka jest rozproszonym brokerem komunikatów, który może obsłużyć dużą liczbę wiadomości na sekundę. Używa paradygmatu publikuj-subskrybuj i opiera się na tematach i partycjach. Kafka używa Zookeeper do udostępniania i zapisywania stanu między brokerami. Kafka jest więc w zasadzie odpowiedzialna za przesyłanie wiadomości z jednej maszyny do drugiej.

Storm to skalowalny, odporny na błędy system analityczny w czasie rzeczywistym (myśl jak Hadoop w realtime). Zużywa dane ze źródeł (Wylewki) i przekazuje je do rurociągu (śruby). Można je łączyć w topologii. Storm jest więc w zasadzie jednostką obliczeniową (agregacja, uczenie maszynowe).


Ale możesz ich używać razem: na przykład Twoja aplikacja używa Kafki do wysyłania danych do innych serwerów, które używają storm do wykonywania obliczeń na nim.

 31
Author: Salvador Dali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-26 07:48:14

Wiem, że jest to starszy wątek i porównania Apache Kafka i Storm były poprawne i poprawne, kiedy zostały napisane, ale warto zauważyć, że Apache Kafka ewoluował wiele lat i od wersji 0.10 (Kwiecień 2016) Kafka zawiera Kafka Streams API, które zapewnia możliwości przetwarzania strumienia bez potrzeby dodatkowego oprogramowania, takiego jak Storm. Kafka zawiera również Connect API do łączenia się z różnymi źródłami i zlewozmywakami (miejscami docelowymi) z data.

Blog ogłoszeniowy - https://www.confluent.io/blog/introducing-kafka-streams-stream-processing-made-simple/

Aktualna dokumentacja Apache- https://kafka.apache.org/documentation/streams/

W 0.11 Kafka funkcjonalność przetwarzania strumienia została dodatkowo rozszerzona, aby zapewnić dokładnie raz semantykę i transakcje.

Https://www.confluent.io/blog/exactly-once-semantics-are-possible-heres-how-apache-kafka-does-it/

 17
Author: Hans Jespersen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-19 19:29:05

Tak to działa

Kafka - aby zapewnić strumień w czasie rzeczywistym

Storm - aby wykonać kilka operacji na tym strumieniu

Możesz rzucić okiem na projekt GitHub https://github.com/abhishekgoel137/kafka-nodejs-d3js .

(D3js jest biblioteką reprezentacji grafów)

Idealny przypadek:

Realtime application -> Kafka -> Storm -> NoSQL -> d3js

To repozytorium jest oparte na:

Realtime application -> Kafka -> <plain Node.js> -> NoSQL -> d3js
 13
Author: Abhishek Goel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-05 06:30:35

Jak każdy wyjaśnia, że Apache Kafka: jest kolejką komunikatów ciągłych

Apache Storm: is continuous processing tool

Tutaj w tym aspekcie Kafka pobierze dane z dowolnej strony internetowej, takiej jak FB, Twitter za pomocą API i że dane są przetwarzane za pomocą Apache Storm i możesz przechowywać przetworzone dane w dowolnych bazach danych, które lubisz.

Https://github.com/miguno/kafka-storm-starter

Po prostu podążaj za nim dowiesz się czegoś

 3
Author: syed jameer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-08 12:12:25

Kiedy mam przypadek użycia, który wymaga ode mnie wizualizacji lub ostrzegania o wzorcach (pomyśl o trendach na Twitterze), kontynuując przetwarzanie zdarzeń, mam kilka wzorców.
NiFi pozwoli mi przetworzyć Zdarzenie i zaktualizować trwały magazyn danych z niską (er) agregacją wsadową z bardzo, bardzo małym niestandardowym kodowaniem.
Storm (dużo niestandardowego kodowania) pozwala mi prawie w czasie rzeczywistym na dostęp do trendów.
Jeśli mogę czekać wiele sekund, to mogę wsadzić z Kafki, do hdfs (Parkiet) i proces.
Jeśli muszę wiedzieć w kilka sekund, potrzebuję NiFi, a prawdopodobnie nawet Storm. (Pomyśl o monitorowaniu tysięcy stacji naziemnych, gdzie muszę zobaczyć małe warunki pogodowe w regionie dla ostrzeżeń o tornadach).

 0
Author: Daemeon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-07 06:04:43