Apache flink Apache Flink:状态后端将状态保存在哪里?

Apache flink Apache Flink:状态后端将状态保存在哪里?,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我得到一份声明如下: 根据您的状态后端,Flink还可以管理应用程序的状态,这意味着Flink处理内存管理,如果需要允许应用程序保持非常大的状态,可能会溢出到磁盘 这是否意味着只有将状态后端配置为RocksDBStateBindend时,状态才会保留在内存中,必要时可能会溢出到磁盘 但是,如果配置为MemoryStateBackend或FsStateBackend,则状态仅保留在内存中,不会溢出到磁盘。是的,一般来说,您是对的。只有使用RocksDBStateBackend,才会将数据溢出到磁盘

我得到一份声明如下:

根据您的状态后端,Flink还可以管理应用程序的状态,这意味着Flink处理内存管理,如果需要允许应用程序保持非常大的状态,可能会溢出到磁盘

这是否意味着只有将状态后端配置为RocksDBStateBindend时,状态才会保留在内存中,必要时可能会溢出到磁盘


但是,如果配置为MemoryStateBackend或FsStateBackend,则状态仅保留在内存中,不会溢出到磁盘。

是的,一般来说,您是对的。只有使用RocksDBStateBackend,才会将数据溢出到磁盘

对于MemoryStateBackend和FsStateBackend,状态始终保留在TaskManager内存中,因此必须适合其中。这两个后端之间的区别在于它们检查数据的方式

对于MemoryStateBend,检查点数据被发送到JobManager,并保存在内存中

FsStateBackend在文件系统中的检查点上存储数据,并仅向JobManager或metadata文件夹中的HA场景存储发送少量元数据


因此,对于任何生产用例,强烈建议使用RocksDBStateBend。您可以找到更深入的信息。

是的,总的来说,您是对的。只有使用RocksDBStateBackend,才会将数据溢出到磁盘

对于MemoryStateBackend和FsStateBackend,状态始终保留在TaskManager内存中,因此必须适合其中。这两个后端之间的区别在于它们检查数据的方式

对于MemoryStateBend,检查点数据被发送到JobManager,并保存在内存中

FsStateBackend在文件系统中的检查点上存储数据,并仅向JobManager或metadata文件夹中的HA场景存储发送少量元数据

因此,对于任何生产用例,强烈建议使用RocksDBStateBend。您可以找到更深入的信息