Apache storm 风暴vs卡夫卡和处理器

Apache storm 风暴vs卡夫卡和处理器,apache-storm,apache-kafka,Apache Storm,Apache Kafka,我在阅读storm文档时发现,不清楚apache storm到底给了我什么,而不是让一个小进程从一个kafka主题消费并产生到另一个主题?有了这个架构,我可以改变每个工作进程的数量,以适应哪些组件较慢等。大概storm会给我自动容错和易于重新平衡?是否可能有任何性能改进 大概storm会给我自动容错和轻松的重新平衡 是的,这都是关于容错和再平衡的: Storm将密切关注大多数组件,并跟踪批处理是否成功重播。如果不是,它将方便地重播它。UI和logviewer是非常小的添加。另一个好处是,Stor

我在阅读storm文档时发现,不清楚apache storm到底给了我什么,而不是让一个小进程从一个kafka主题消费并产生到另一个主题?有了这个架构,我可以改变每个工作进程的数量,以适应哪些组件较慢等。大概storm会给我自动容错和易于重新平衡?是否可能有任何性能改进

大概storm会给我自动容错和轻松的重新平衡

是的,这都是关于容错和再平衡的:

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

是否可能有任何性能改进


更像是相反的。范围相当广泛的现成解决方案几乎总是比临时系统性能差。特别是,在windowed join任务中,我们能够在6台机器的集群上每秒处理约120k条记录,而我们自己专门为此任务设计的POC显示的吞吐量大于2.5倍。如果您不打算使用Storm作为各种不同管道的平台,那么值得考虑推出自己的实现

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

  • 消息处理保证。核心风暴至少有一次 只有在出现故障时,才会重播保证和消息。 三叉戟有“精确一次”保证
  • 易于分布式部署。 您所需要做的就是将拓扑jar提交到集群
  • 拓扑的不同部分允许不同级别的 平行性
  • 不同类型的分组支持。分组模式 例如,fieldsGrouping使流加入更多的eaiser

  • 当然,如果您的事件处理用例非常简单,并且在您的体系结构中不需要上述任何一项,那么手动启动多个java进程来读取Kafka主题的消息应该具有更好的性能。但事实上,情况并非如此。

    例如:基于卡夫卡输出的映射/减少策略在风暴中很容易实现。你真的应该从storm starter开始,运行应用程序并重新制定你的问题。就目前而言,它似乎毫无头绪。我开始玩三叉戟,然后转向三叉戟,但它似乎有一个相当陡峭的学习曲线,而且相当复杂。另外,与Clojure 1.6的不兼容性对我来说也是一个很大的问题,我不能使用任何使用
    some?