据我所知,处理 Kafka Streams 的本地状态在内存、磁盘或 Kafka 主题中,因为所有输入日期都来自一个分区,其中所有消息都由定义的值作为键。大多数时候,可以在不知道其他处理器状态的情况下完成计算。如果是,则您有另一个计算结果的 Streams 实例。就像这张照片:
Flink 的 States 到底存储在哪里? Flink 是否也可以将状态存储在本地,还是始终将状态发布到所有实例(任务)?是否可以配置 Flink 以便将状态存储在 Kafka Broker 中?
最佳答案
Flink 也使用本地存储(可以键控),类似于 Kafka Streams。但是,它不会将状态写入 Kafka 主题。
为了容错,它采用所谓的“分布式快照”,存储在可配置的状态后端(例如,HDFS)中。
查看文档了解更多详情:
- https://ci.apache.org/projects/flink/flink-docs-stable/ops/state/checkpoints.html
- https://ci.apache.org/projects/flink/flink-docs-release-1.7/dev/stream/state/checkpointing.html
- https://ci.apache.org/projects/flink/flink-docs-stable/internals/stream_checkpointing.html
- https://ci.apache.org/projects/flink/flink-docs-release-1.7/dev/stream/state/state_backends.html
关于apache-kafka - Apache Flink State Store 与 Kafka Streams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54608133/