Flink 新一代流计算和容错——阶段总结和展望
一、高可用流计算的关键路径
二、容错 (Fault Tolerance) 2.0
及关键问题
容错也是多维度的问题,不同的用户、不同的场景对容错都有不同需求,主要包括以下几个方面:
数据一致性 (Data Consistency),有些应用比如在线机器学习是可以容忍部分数据丢失; 延迟 (Latency),某些场景对端到端的延迟要求没那么高,所以可以将正常处理和容错恢复的时候要做的工作综合平均一下; 恢复时的行为表现 (Recovery Behavior),比如大屏或者报表实时更新的场景下,可能并不需要迅速全量恢复,更重要的在于迅速恢复第一条数据; 代价 (Cost),用户根据自己的需求,愿意为容错付出的代价也不一样。综上,我们需要从不同的角度去考虑这个问题。
三、Flink 中的数据恢复过程
四、稳定快速高效的 Checkpointing
针对中间数据流动缓慢,可以:
想办法不被中间数据堵塞:Unaligned Checkpoint——直接跳过阻塞的中间数据; 或者让中间的数据变得足够少:Buffer Debloating。 针对状态数据过大,我们需要将每次做 Checkpoint 时上传的数据状态变得足够小:Generalized Log-Based Incremental Checkpoint。
4.1 Unaligned Checkpoint
4.2 Buffer Debloating
4.3 Generalized Log-Based Incremental Checkpoint
五、云原生下容错和弹性扩缩容
评论