Flink中Barrier对齐机制

Flink内部数据精准一次消费

Barrier对齐

在这里插入图片描述

  • 流程
    当一个算子上游有两条或多条输入时,在进行Checkpoint时可能会出现两条流中数据流速不一样,导致多条流同一批次的Barrier到达下游算子的时间不一致, 此时快的Barrier到达下游算子后,此Barrier之后到达的数据将会放到缓冲区,不会进行处理。等到其他流慢的Barrier到达后,此算子才进行checkpoint,然后把状态保存到状态后端。这就是Barrier的对齐机制。
  • 优缺点
    1)优点:①状态后端保存数据少。
    2)缺点:①延迟性高(快的Barrier到达后会阻塞此条流的数据处理)②当作业出现反压时,会加剧作业的反压(当出现反压时,数据本身就处理不过来,此时某条流的数据又阻塞了所以就会加剧反压。)③整体chenkpoint时间变长(因为反压会导致数据流速变慢,导致Barrier流的也慢,所以就会使得整体chenkpoint时间变长)。
  • 优化
    在Flink1.11后引入了Unaligned Checkpoint的特性,使得当Barrier不对齐的时候也可以实现数据的精准一次消费。
Barrier不对齐(Unaligned Checkpoint)

在这里插入图片描述

  • 流程
    当流速快的Barrier到达下游算子的input buffer后,此时会把这个Barrier插队到此下游算子的output buffer最前面,然后把这个Barrier发送给之后的算子,同时对自身进行快照,这时的快照内容就是当时的状态以及当时所有input buffer和output buffer以及流速慢的Barrier(这个流速慢的Barrier应该是当进行快照时就被移除了,并不会流下去)之前的数据都会保存到状态后端当中。当之后恢复到此次checkpoint的时候,不对齐的数据会重新恢复到各个流中,虽然会重新进行计算,但是此时的状态也是未计算之前的状态。
  • 优缺点
    1)优点:①加快checkpoint的进行②当作业出现反压时不会造成反压加剧。
    2)缺点:①状态后端保存数据多②进行状态恢复的时比较慢。

Flink内部数据至少一次消费

Barrier不对齐
  • 流程
    这个不对齐和上边的精准一次消费不对齐机制是不一样的。当流速快的Barrier流到下游算子当中,此时不理会此Barrier,正常进行后续数据的计算。当流速慢的Barrier到来的时候,此时进行快照。此时进行快照时,会把流速快的那条流中相同Barrier后的数据也进行计算一部分,然后把计算完的状态保存到状态后端,之后进行状态恢复时,会把Barrier之后的数据进行重复,而此时状态的结果是包含一部分Barrier之后的数据的 ,此时就会造成数据的重复消费问题。
  • 优缺点
    1)优点:①不会阻塞数据,延迟低。
    2)缺点:①造成数据的重复消费问题。
  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值