Apache Flink 任务的内存复制缓存

问题描述 投票:0回答:1

我正在处理需要根据库存数据进行转换的流。本质上,库存数据会很大(没有确切的数字),并且会有大量的读取和很少的写入。

假设我有 3 个任务管理器,每个任务管理器有 1 个槽位。

在 3 台不同机器上运行的转换运算符如何使用内存中的复制缓存?

apache-flink flink-streaming
1个回答
0
投票

通常(对于丰富数据具有合理的记录大小),您可以轻松地在状态中保存数百条 K 条唯一记录。由于您是根据 ID 将丰富数据加入到流中,因此只需使用 KeyedCoProcessFunction

这里的主要挑战通常是冷启动,在开始处理要丰富的数据之前,您首先要确保状态(丰富数据)已完全加载。一个简单的解决方案是首先在特殊模式下运行工作流程,在该模式下您有一个流数据的虚拟源。加载所有丰富数据后,使用保存点停止它,然后从该保存点以正常模式重新启动。

© www.soinside.com 2019 - 2024. All rights reserved.