apache-kafka - 为什么要在 flink 中使用 kafka

标签 apache-kafka apache-flink

<分区>

我目前正在探索使用 flink 进行流处理的领域。然而,到目前为止,我阅读的大多数专业文章都在谈论 flink 和 kafka。然而,我没有找到一个明确的解释,为什么这对组合看起来如此合乎逻辑,也没有解释 kafka 做什么 flink 不能做什么,反之亦然。

到目前为止,我发现了以下内容: - flink 不能使用 readCsvFile 进行 PROCESS_CONTINUOUSLY,而 kafka 可以在这方面提供支持, - kafka 可以进行流聚合,但与 kafka 相比似乎有限(不确定)。

因此,请毫不犹豫地添加您到目前为止对这些系统的了解和经验。非常感谢您。

最佳答案

的确,乍一看区别并不明显。

Apache Kafka 是一种处理实时信息并将其快速传送给消费者的解决方案,这意味着它是一个消息代理

Apache Flink 是一个流处理框架。涉及数据内存分布式计算。

也就是说,基本上,Kafka 将扮演消息路由器的角色,而 Apache Flink 将处理数据。

正如您在下面的示例架构中看到的那样,Kafka 将允许从异构源发布消息,而 Apache Flink 将通过应用窗口化或减少功能来处理这些数据。

enter image description here

如果您查看 Kafka 文档,他们会在 Kafka 之上引入一个名为 Kafka Stream 的新功能(它不是原始 Kafka 的一部分)。这也是一个流处理框架,具有像 Apache Flink 一样处理数据的能力。

关于apache-kafka - 为什么要在 flink 中使用 kafka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43204175/

相关文章:

amazon-ec2 - 无法连接到 AWS EC2 上的 Kafka

java - Flink Gelly 扩展边缘类并在 DataSet 中使用它

java - 在 Flink SourceFunction 中获取 ClassNotFound 异常

linux - 如何更改docker容器中 'flink'上的默认用户 'root'?

integration-testing - Apache Flink - 端到端测试如何终止输入源

apache-flink - 在 Flink 中使用计数器获取 numOfRecordsIn

java - Kafka 流 - SerializationException : Unknown magic byte

apache-kafka - 如何比较kafka流中的当前事件和旧事件

apache-kafka - 如何从Kafka中的两个不同集群进行消费?

apache-kafka - 使用高级 API 从特定偏移量开始读取 kafka 消息