我正在构建一个具有以下要求的应用程序,我刚刚开始使用flink .
-
用50个分区将数据摄取到Kafka(传入速率 - 100,000 msgs / sec)
-
从Kafka读取数据并实时处理每个数据(进行一些计算,与旧数据比较等)
-
将输出存储在Cassandra上
我一直在寻找一个实时流媒体平台,并发现Flink非常适合实时和批量 .
-
你认为flink最适合我的用例,还是应该使用Storm,Spark流媒体或任何其他流媒体平台?
-
我是否需要在google数据流中编写数据管道以在flink上执行我的一系列步骤,还是有其他方法来执行实时流式传输的一系列步骤?
-
假如我的每次计算花费了20毫秒,我怎样才能更好地用flink设计它并获得更好的吞吐量 .
-
我可以使用Redis或Cassandra在flink中为每次计算获取一些数据吗?
-
我能在flink中使用JVM内存缓存吗?
-
也可以在某个时间窗口(例如5秒)基于密钥聚合数据 . 例如,假设有100条消息进来,10条消息具有相同的密钥,我可以将所有具有相同密钥的消息组合在一起并进行处理 .
-
有没有关于使用flink的最佳实践的教程?
谢谢,感谢您的帮助 .
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 .