使用Apache Flink进行数据流

时间:2016-06-10 00:12:54

标签: apache-flink flink-streaming

我正在构建一个具有以下要求的应用程序,我刚刚开始使用flink。

  • 使用50个分区(传入速率 - 100,000 msgs /秒)将数据传入Kafka
  • 从Kafka读取数据并实时处理每个数据(做一些计算,与旧数据比较等)
  • 将输出存储在Cassandra

我一直在寻找一个实时流媒体平台,并发现Flink非常适合实时和批处理。

  • 您认为flink最适合我的用例,还是应该使用Storm,Spark流媒体或任何其他流媒体平台?
  • 我是否需要在google数据流中编写数据管道以在flink上执行我的一系列步骤,还是有其他方法来执行实时流式传输的一系列步骤?
  • 假如我的每次计算花费了20毫秒,我怎样才能更好地用flink设计它并获得更好的吞吐量。
  • 我可以使用Redis或Cassandra在flink中为每次计算获取一些数据吗?
  • 我是否可以在flink中使用JVM内存缓存?
  • 我也可以在某个时间窗口(例如5秒)基于密钥聚合数据。例如,假设有100条消息进来,10条消息具有相同的密钥,我可以将所有消息组合在一起并进行处理。
  • 是否有关于使用flink的最佳做法的教程?

感谢并感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

鉴于您的任务描述,Apache Flink看起来非常适合您的用例。

一般情况下,Flink提供low latency and high throughput并有一个参数来调整这些。您可以从Redis或Cassandra读取和写入数据。但是,您也可以store state internally in Flink。 Flink也有sophisticated support for windows。您可以阅读blog on the Flink website,查看documentation了解详情,或按照Flink training了解API。