flink-对齐和不对齐,精准一次和至少一次

  1. 精准一次怎么保证?可以设置为以下2个
    1. 对齐
      1. 当有一个barrier比较快时,输入缓冲区阻塞,当另外一个barrier到来时,才进行备份,所以数据不会重复。
      2. 优点:不会造成数据重复
      3. 缺点:会造成数据积压,OOM
    2. 不对齐
      1. 当有一个barrier到来时,直接将barrier置到最后,然后将所有缓冲区的数据和状态进行备份,然后将kafka提交,然后将慢的barrier也置到最后,将所有缓冲区的数据和状态进行备份,然后将kafka提交。
      2. 优点:加快了ck
      3. 缺点:由于备份了大量数据,会造成IO压力大,磁盘存储压力大
  2. 至少一次怎么保证?
    1. 对齐
    2. 当有一个barrier比较快时,输入缓冲区不阻塞,直接向下游流动,而barrier会等待另外一个barrier,当此次ck备份成功后,JM注入新的barrier,然后到一半的时候,备份失败了,kafka回滚,从HDFS中恢复上次的ck,恢复kafka的offset,由于不阻塞,所以会重新从kafka中拉取到重复的数据进行计算,就造成了数据的重复,就是至少一次语义。
    3. 优点:不阻塞,不会造成数据积压,OOM
    4. 缺点,会造成数据重复

你可能感兴趣的:(Flink,flink,大数据)