我曾经使用过Storm和Spark,但是Samza还比较新。
我不明白为什么要引入Samza,当Storm已经可以用于实时处理。Spark提供了内存近似实时处理,并拥有其他非常有用的组件,如graphx和mllib。
Samza带来了哪些改进?还有哪些改进是可能的呢?
我曾经使用过Storm和Spark,但是Samza还比较新。
我不明白为什么要引入Samza,当Storm已经可以用于实时处理。Spark提供了内存近似实时处理,并拥有其他非常有用的组件,如graphx和mllib。
Samza带来了哪些改进?还有哪些改进是可能的呢?
这篇文章很好地总结了不同流处理技术之间的差异和优缺点。
我只想补充一点,Samza并不算是很新的技术,但它在使用Kafka作为后端时具有一定的简洁性,而其他技术则会在简洁性方面做出牺牲以变得更加通用。Samza由创建Kafka的人员推出,他们也是Kappa Architecture背后的人员,主要是前LinkedIn的Jay Kreps。这非常棒。
此外,在实时流处理方面,Samza、Spark Streaming中的微批处理(与Spark不完全相同)以及Storm中的spouts和bolts与元组的编程模型完全不同。
这些技术都没有“更好”的一方。它们的选择取决于您的用例、团队的优势、API与您的思维模式的匹配度以及支持质量等因素。
您还忘记了Apache Flink和Twitter的Heron,他们开发Heron是因为Storm开始让他们失望了。不过,像Twitter这样大规模运营的公司非常少。