据我所知,处理Kafka流会在内存、光盘或Kafka主题中本地显示其状态,因为所有的输入数据都来自一个分区,其中所有的消息都是由一个定义的值键控的。大多数时候,计算可以在不知道其他处理器状态的情况下完成。如果是,则有另一个Streams实例来计算结果。就像这张图:
Flink的状态到底存储在哪里?Flink是否也可以在本地存储状态,还是总是将它们发布到所有实例(任务)?是否可以配置Flink,使其将状态存储在Kafka代理中?
Flink还使用本地存储(可以使用键控),类似于Kafka流。但是,它并没有把状态写进Kafaka的话题中。
对于容错,它采用所谓的“分布式快照”,这些快照存储在可配置状态的后端(例如HDFS)中。
查看文档了解更多详细信息: