风暴对卡夫卡和处理器

时间:2015-03-05 13:52:41

标签: apache-storm apache-kafka

我发现不清楚读风暴文档究竟是什么apache风暴让我有一个消耗kafka主题并产生另一个话题的小进程?通过这种架构,我可以改变每个工作流程的数量,以适应​​哪些组件更慢等。据推测,风暴会给我自动容错和重新平衡的简易性?是否可能有任何性能改进?

2 个答案:

答案 0 :(得分:2)

  

据推测风暴会给我自动容错和轻松重新平衡吗?

是的,它完全是关于容错和再平衡的:

Storm会密切关注大部分组件,并跟踪批次是否成功重播。如果不是,它将方便地重播它。 UI和logviewer是非常小的补充。另一个好处是Storm已经与所有主要数据库/队列(HDFS,Kafka,Kestrel,Cassandra等)集成,但由于你已经在输入类型上已经很稳定了,它对你来说可能并不那么重要。

  

是否可能有任何性能改进?

更像是相反的。具有相当普遍范围的现成解决方案几乎总是比ad-hoc系统更低性能。特别是,在窗口连接任务上,我们能够在6台机器的集群上每秒处理大约120k条记录,而我们自己专门为此任务设计的POC> 2.5倍吞吐量。如果您不打算将Storm用作各种不同管道的平台,那么值得考虑推出自己的实现。

答案 1 :(得分:1)

不仅风暴提供容错和重新平衡功能,它还具有一些适合实时事件处理的其他功能

  1. 邮件处理保证。核心风暴已经" 至少一次" 保证和消息仅在出现故障时重播。 三叉戟有" 确切一次"保证
  2. 易于分布式部署。     您需要做的就是将拓扑jar提交到集群。
  3. 拓扑的不同部分允许不同的级别     平行度。
  4. 不同类型的分组支持。分组模式     例如fieldsGrouping使流加入更多eaiser。
  5. 当然,如果您的事件处理用例非常简单,并且您的架构中不需要上述任何一个,那么手动启动多个Java进程来读取Kafka主题的消息应该具有更好的性能。但实际上,情况并非如此。