首先,术语“合流的卡夫卡流媒体”在技术上是不正确的。
- 这就是所谓的卡夫卡的流API(又名卡夫卡流)
- 这是Apache的卡夫卡的一部分,因此“资”由Apache软件基金会(而不是由汇合)
- 有是汇合开源和汇合企业 - 两个报价从汇合,都利用Apache Kafka(因此,卡夫卡Streams)
但是,Confluent向Apache Kafka贡献了很多代码,包括Kafka Streams。
关于差别(我只介绍一些主要的分歧,是指互联网和文件的详细信息:http://docs.confluent.io/current/streams/index.html和http://spark.apache.org/streaming/)
星火流:
- 微配料(没有真正record-由记录流处理)
- 没有子第二时延
- 有限窗口操作
- 没有事件时处理
- 处理框架(难以操作和部署)的Apache火花的
- 部分 - 数据处理框架
- 恰好一次处理
卡夫卡流
- 逐条记录流处理
- ms等待时间
- ri CH窗口操作
- 流/表二元
- 事件时间,摄取时间,加工时间语义
- Java库(易于运行和部署 - 它只是一个Java应用程序的任何其他)的
- 部分Apache Kafka - 一个流处理平台(即它一次提供存储和处理)
- 至少一次处理(正好一次处理是在制品; CF KIP-98和KIP-129)
- 弹性,即动态可扩展
因此,没有理由为“结婚”两个 - 这是你想要使用哪一个选择的问题。
我个人的看法是,Spark并不是流处理的好方案。如果你想使用像Kafka Streams这样的库或像Apache Flink,Apache Storm或Apache Apex这样的框架(这对流处理来说都是很好的选择)取决于你的用例(也许是个人喜好),并且不能在SO上得到回答。
卡夫卡流的一个主要区别是,它是一个库,不需要处理集群。因为它是Apache Kafka的一部分,并且如果您已经安装了Apache Kafka,这可能会简化您的整体部署,因为您不需要运行额外的处理群集。