【问题标题】:Apache Flink State Store vs Kafka StreamsApache Flink 状态存储与 Kafka Streams
【发布时间】:2019-07-03 14:58:06
【问题描述】:

据我所知,在内存、磁盘或 Kafka 主题中本地处理 Kafka 流其状态,因为所有输入日期都来自一个分区,其中所有消息都由一个定义的值作为键。大多数情况下,可以在不知道其他处理器状态的情况下完成计算。如果是这样,您有另一个 Streams 实例来计算结果。就像这张照片:

Flink 究竟在哪里存储它的状态? Flink 是否也可以将状态存储在本地,还是总是将它们始终发布到所有实例(任务)?是否可以配置 Flink 以便将状态存储在 Kafka Broker 中?

【问题讨论】:

    标签: apache-kafka apache-flink apache-kafka-streams stream-processing


    【解决方案1】:

    Flink 和 Kafka Streams 是有区别的。 Flink 是集群框架,您的代码在 Flink Cluster 中部署并作为作业运行。 Kafka 流是您嵌入在标准 Java 应用程序中的 API。流处理逻辑在您的应用程序 java 进程中运行。它们都可以将结果发送到 Kafka、键值存储、数据库或外部系统。 Flink 的主节点基于 ZooKeeper 实现了自己的高可用机制,并保证了灾难后的可用临时状态。如果您在设法将临时状态保存到 Kafka 集群后使用 Kafka Streams,您将拥有 Kafka 集群提供的相同 HA 功能。

    【讨论】:

      【解决方案2】:

      Flink 也使用本地存储(可以键控),类似于 Kafka Streams。但是,它不会将状态写入 Kafka 主题。

      为了容错,它采用所谓的“分布式快照”,这些快照存储在可配置的状态后端(例如 HDFS)中。

      查看文档了解更多详情:

      【讨论】:

      • 您可能还想为 Kafka Streams 添加一些文档指针。
      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 2018-10-24
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多