Flink设计与实现:核心原理与源码解析

张利兵
前言 为什么要写本书 流计算从出现到普及,经历了非常多的变化——从早期Apache Storm等技术的落地和使用,到现在越来越多的公司选择使用Apache Flink作为流处理核心技术。Flink以其强大的批流一体处理能力以及低延迟、高吞吐等特性,正在吸引着越来越多的公司和用户加入Flink社区。和大多数爱好Flink技术的人一样,我也被Flink深深吸引,想要更加深入地了解Flink底层的技术组成。 我用了一年多的时间静心研究Flink技术的底层实现原理,前前后后遇到过很多困难。单纯地阅读源码是一件比较乏味且需要毅力的事,需要花费非常多的时间和精力,一点点地研究框架中每个模块的源码实现以及每个方法的意义、它们之间的调用关系等。虽然过程很枯燥,但是在我将整个Flink框架梳理清楚之后,不禁为Flink框架的内部实现所折服——每个代码细节都体现了开发人员的专业的实现思想,整个框架背后包含了非常多的思想结晶。学习源码不仅提升了我的技术功底,还加深了我对技术的理解。要想深度掌握一项技术,可以说没有什么方法比阅读源码更加有效了。通常情况下,阅读源码有较高的技术门槛,不易下手,我们需要对技术有一定的理解和认识,至少能够非常熟练地将其应用在实际工作之中,才能更好地了解其底层运行原理。否则在不了解框架使用的情况下贸然学习源码实现,非常容易陷入混乱和迷惑的状态,从而极大地影响学习体验。 结合以上学习经验,我希望能够写一本将Flink源码讲透的书,帮助那些想深入理解源码、深度掌握Flink底层核心技术实现但没有太多时间进行研究的读者。本书可以帮助读者更加游刃有余地将Flink这项技术应用到实际工作中。我相信,面对再难的事情,只要我们脚踏实地,循序渐进,最终一定会有所领悟,即便达不到非常专业和精进,也至少比初学有更多的收获。 读者对象 本书将从多个方面介绍Flink原理实现与源码,包括Fli…