暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

flink学习笔记(4)-状态和一致性模型

beenrun 2022-03-07
162

本文主要讲解流处理中的状态,当出现故障时,如何保证状态一致性。



01


状态

  1. 有状态算子:传入事件+内部状态=算输出(新的内部状态)

  2. 注意问题:内部状态无限增长

  3. 限制状态大小方式

    (1)一个数值

    (2)一个累加值

    (3)全部事件的抽样

    (4)一个窗口缓存

    (5)某些有价值的值等

    4.之前处理方式

    (1)将流处理进行小批处理,状态写入持久化存储

    (2)一个作业结束,所有状态将不存在

    5.现在处理方式

    (1)状态管理,高效管理状态,保证不受并发影响

    (2)状态划分

  • 结果需要同时依赖事件和内部状态

  • 很多情况可以按照键值进行划分

    (3)状态恢复

  • 最大挑战

  • 有状态算子需要保证状态可以恢复

  • 即使出现故障也能保证结果正确


02


任务故障


  1. 由于状态特别重要,需要在故障的时候,进行保护

  2. 任务处理步骤

  3. 接收事件,缓存到本地

  4. 选择性地更新内部状态

  5. 产生输出结果

  6. 在上面执行的3个步骤中都有可能发生故障


03


结果保障

  1. 结果保障

  2. 流处理引擎中内部状态的一致性

  3. 保证应用状态的一致性和保证输出的一致性不是一回事





谢谢阅读!


欢迎大家关注、点赞、收藏!分享知识!

奇迹的出现往往就在再坚持一下的时候!


文章转载自beenrun,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论