一、产生背景

  • 实时数据处理所带来的价值远远大于离线处理
  • 一个优秀的流处理引擎标准要求
    • 低延迟、高吞吐量、容错性、窗口时间语义化、编程效率高、运行效果好等
  • strom/jstorm
    • 优点:低延迟
    • 缺点:其他方面都差一些
  • sparkstreaming

    • 优点:高吞吐量、容错性高
    • 缺点:其他都差一些

      二、flink介绍

      1、概念说明

  • 由Apache软件基金会开发的开源流处理框架

  • 核心由Java和Scala编写的
  • 应用与对有界和无界的数据流进行有状态的计算

    • 无界数据流:即为实时数据流
    • 无界数据流:即为离线数据,批处理

      2、特点特征

  • 可以在所有常见的集群环境中运行,以内存速度和任何规模进行计算。

  • 能够达到实时流处理引擎的全部标准。

    3、应用场景

  • 要求严格的实时流处理场景

    4、代码实现

  • 实现方式

    • Java API
    • Scala API
  • 统一数据处理过程抽象
    • 将实时和批处理均抽象成三个过程:Source->Transform->Sink
    • Source为数据源读入
    • Transform为数据处理转化
    • Siuk为数据接收器,数据落地到存储层
  • 代码实现复杂度
    • 丰富的API和算子操作,支持sql编程,复杂度并不高

      三、版本介绍

  • Flink早期就收到阿里的认可,并进行二次开发,名为Blink。
  • Blink主要优化再用户体验方面,比如SQL、UI等
  • 在2019年反馈给Flink,并以Flink为主进行开发
  • 学习使用的是1.13.1