一:产生背景

1.1 历史背景

  • 随着互联网应用的快速发展,实时流数据产生日益增多和普遍化。如日常生活、金融、驾驶、LBS、电商等众多领域。
  • 实时数据的处理和挖掘能够带来离线数据处理和挖掘更多的社会发展和商业价值
  • 如何快速响应和处理这些大规模的实时数据流,成为众多互联网大厂的当务之急。
  • 在flink之前也出现了很多流数据处理引擎,包括storm、sparkstreaming等知名流行框架,但各自均有较明显的不足,导致没有达到理想的流处理引擎的标准要求。

1.2 优秀的流处理引擎

  • 优秀流处理引擎标准要求
    • 低延迟、高吞吐量、容错性、窗口时间语义化、编程效率高与运行效果好的用户体验;
  • storm
    • 优点:低延迟
    • 缺点:其它要求都较差一些
  • sparkstreaming
    • 优点:高吞吐量、容错性高
    • 缺点:其它要求都较差一些

二:基本介绍

2.1 概念说明

  • 由Apache软件基金会开发的开源流处理框架
  • 其核心是用Java和Scala编写的框架和分布式处理引擎
  • 用于对无界和有界数据流进行有状态计算。
    • 无界数据流: 即为实时流数据;
    • 有界数据流:即为离线数据,也称为批处理数据;

2.2 特点特征

  • 被设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。
  • 能够达到实时流处理引擎的全部标准要求。
    • 低延迟、高吞吐量、容错性、窗口时间语义化、编程效率高与运行效果好的用户体验;

三:应用场景

3.1 官方说明

  • 事件驱动型应用
  • 数据分析型应用
  • 数据管道 ETL

3.2 实际情况

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

四:代码实现

4.1 实现方式

  • Java API
  • Scala API

4.2 统一数据处理过程抽象

  • 将实时和批处理的数据过程,均抽象成三个过程,即Source->Transform->Sink。
    • Source为源数据读入,即Source算子。
    • Transform是数据转换处理过程,即Transform算子。
    • Sink即数据接收器,即数据落地到存储层,即Sink算子。
  • 代码实现复杂度
    • 丰富的API和算子操作;
    • 抽象封装统一性较高,支持类SQL编程,编程复杂度并不高。

五:版本发展

版本 发行日期 备注
Flink 0.6-incubating 2014-08-26 初步得到团队内部认可,正在快速迭代中
Flink 0.9.0-milestone 2015-04-13 有重大进展,得正式对外发布,
0.9 2015-09-01 从此时开始引入阿里巴巴,并成为阿里系主干业务实时流处理引擎,内部改良优化后命名为blink
0.10 2016-02-11
1.0 2016-05-11 很有里程碑、代表性的一个版本
1.1 2017-03-22
1.2 2017-04-26
1.3 2018-03-15
1.4 2018-03-08
1.5 2018-10-29
1.6 2018-10-29
1、在2019年初,blink在阿里内部经过多年的商用实践,增加了N多新特性,并得到广泛应用和成熟化,正式对外开源,并捐赠给Apache Flink社区,并成为其下的分支方式开源并逐步融合后,依然以Flink为主进一步推进开源进程。****2、阿里系以9000万欧元收购了创业公司 Data Artisans,即Flink的开发团队所属公司。
1.7 2019-02-15
1.8 2019-04-09
1.9 2019-08-19 目前市占率较高的一个版本
1.10 2020-02-11
1.11 2020-07-06 从此版本开始,加入很多新特性,支持hadoop3.x版本
1.12 2020-12-08
Flink 1.13.0 2021-04-30
Flink 1.13.1 2021-05-28 版本迭代很快,社区很活跃,发展非常快****已是稳定版。
  • Flink版本在早期就得到阿里认可,并进行集团内部孵化和二次开发、商用实践,命名为Blink。
  • Blink的主要贡献是在用户体验上,包括SQL、webUI等方面。
  • 在2019年进行了开源反馈给社区,从此更多的是以Flink merge Blink新功能后,以Flink为主继续推进开源。
  • 基于市场量、成熟度、社区丰富度等方面,通常选择1.13.1版本。

六:市场前景

  • 现实情况
    • 学习成本较高、应用场景较垂直,其实际开发者在市场上是比较衡缺的。
    • 相对于更广大的中小型公司,Flink的使用量最主要是集中在中大型互联网科技公司。
  • 发展趋势
    • 商业市场、各种大型IT企业对大规模实时数据场景需求旺盛。
    • Flink在实时数据处理方面的架构设计与商用实践表现较为突出。
    • 得到阿里系的商业收购+大规模人力财力物力的支持,未来发展不可限量。