Apache Kafka与Apache Storm


镜乃Kagamino
2025-03-22 05:07:45 (2天前)
  1. 阿帕奇


卡夫卡
</跨度>
:分布式邮件系统
Apache Storm:实时消息处理

我们如何在实时数据管道中使用这两种技术来处理事件数据?

就真实而言

7 条回复
  1. 0# 甲基蓝 | 2019-08-31 10-32



    这是它的工作原理




    卡夫卡
    </强>

    1. - 提供实时流




    风暴
    </强>

    1. - 对该流执行某些操作



    您可以查看GitHub项目

    https://github.com/abhishekgoel137/kafka-nodejs-d3js





    (D3js是图形表示库)
    </强>




    理想情况:
    </强>




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

    2. </code>



    此存储库基于:
    </强>




    1. Realtime application -> Kafka -> -> NoSQL -> d3js

    2. </code>

  2. 1# 757461156 | 2019-08-31 10-32



    当我有一个用例需要我对模式进行可视化或警告时(想想推特趋势),在继续处理事件的同时,我有几种模式。

    NiFi将允许我处理一个事件,并使用非常少量的自定义编码更新具有低(呃)批量聚合的持久数据存储。

    Storm(许多自定义编码)让我几乎可以实时访问趋势事件。

    如果我可以等待很多秒钟,那么我可以批出kafka,进入hdfs(Parquet)并进行处理。

    如果我需要在几秒钟内知道,我需要NiFi,甚至可能是Storm。 (想想监控数千个地球站,在那里我需要看到龙卷风警告的小区域天气条件)。


  3. 2# 木木 | 2019-08-31 10-32



    我知道这是一个较老的线程,Apache Kafka和Storm的比较在编写时是有效和正确的,但值得注意的是,Apache Kafka多年来已经发展了很多,自版本0.10(2016年4月)以来Kafka已经包括在内Kafka Streams API,提供流处理功能,无需任何其他软件,如Storm。 Kafka还包括Connect API,用于连接数据的各种源和接收器(目标)。



    公告博客 -

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



    当前的Apache文档 -

    https://kafka.apache.org/documentation/streams/



    在0.11 Kafka中,流处理功能进一步扩展,以提供Exactly Once Semantics和Transactions。




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


  4. 3# 北极星微控 | 2019-08-31 10-32



    每个人都向你解释
    Apache Kafka:是连续消息传递队列



    Apache Storm:是连续处理工具



    在这方面,Kafka将使用API​​从任何网站(如FB,Twitter)获取数据,并使用Apache Storm处理数据,您可以将处理后的数据存储在您喜欢的任何数据库中。




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



    按照它,你会得到一些想法


  5. 4# 与之 | 2019-08-31 10-32



    卡夫卡和风暴的目的略有不同:




    卡夫卡
    </强>
    是一个分布式消息代理,每秒可以处理大量的消息。它使用发布 - 订阅范例并依赖于主题和分区。 Kafka使用Zookeeper在经纪人之间共享和保存状态。因此,Kafka基本上负责将消息从一台机器传输到另一台机器。




    风暴
    </强>
    是一个可扩展,容错,实时的分析系统(实时想像Hadoop)。它消耗来自源(Spouts)的数据并将其传递给管道(螺栓)。您可以在拓扑中组合它们。所以Storm基本上是一个计算单元(聚合,机器学习)。





    但是你可以一起使用它们:例如你的应用程序使用kafka将数据发送到其他服务器,这些服务器使用storm来对其进行一些计算。


  6. 5# 取之 | 2019-08-31 10-32



    您可以将Apache Kafka用作分布式且健壮的队列,该队列可以处理大量数据,并使您能够将消息从一个端点传递到另一个端点。



    风暴不是一个队列。它是一个具有分布式实时处理能力的系统,这意味着您可以并行地对实时数据执行所有类型的操作。



    这些工具的共同流程(据我所知)如下:



    实时系统 - &gt;卡夫卡 - &gt;风暴 - &gt; NoSql - &gt; BI(可选)



    因此,您有实时应用处理大量数据,将其发送到Kafka队列。 Storm从kafka中提取数据并应用一些必要的操作。此时,您通常希望从这些数据中获得一些好处,因此您可以将其发送到某些Nosql数据库以进行其他BI计算,或者您只需从任何其他系统查询此NoSql即可。


登录 后才能参与评论