3

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

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

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

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

感谢并感谢您的所有帮助。

4

1 回答 1

2

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

一般来说,Flink 提供低延迟和高吞吐量,并且有一个参数来调整这些。您可以从 Redis 或 Cassandra 读取和写入数据。但是,您也可以在 Flink 内部存储状态。Flink 也对 windows 提供了复杂的支持。您可以阅读Flink 网站上的博客,查看文档以获取更多信息,或按照此Flink 培训学习 API。

于 2016-06-10T09:19:34.117 回答