Apache Kafka vs Apache Storm如何使用?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (166)

Apache Kafka:分布式消息传递系统 Apache Storm:实时消息处理

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

就实时数据管道而言,我认为这两项工作完全相同。我们如何在数据管道上使用这两种技术?

提问于
用户回答回答于

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

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

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

实时系统 - > Kafka - > Storm - > NoSql - > BI(可选)

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

用户回答回答于

Kafka 和 Storm有一个略有不同的目的:

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

Storm是一个可扩展的,容错的实时分析系统(像Hadoop一样实时)。它从源头(Spouts)消耗数据并将其传递给管道(Bolts)。可以将它们组合在拓扑中。所以Storm基本上是一个计算单元(聚合,机器学习)。

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

扫码关注云+社区

领取腾讯云代金券