Flink原理、实战与性能优化

张利兵
前言 为什么要写这本书 记得在几年前刚开始做流式计算相关的项目时,发觉项目对实时性和数据量的要求很高,无奈求助于Flink开源社区(后文简称“社区”),在社区中发现可以使用的流式框架有很多,例如比较主流的框架Apache Storm、Spark Streaming等,Apache Flink(简称“Flink”)也在其中。于是笔者开始对各种流式框架进行详细研究,最后发现能同时支持低延迟、高吞吐、Excactly-once的框架只有Apache Flink,从那时起笔者就对Flink这套框架充满兴趣,不管是其架构还是接口,都可以发现其中包含了非常优秀的设计思想。虽然当时Flink在社区的成熟度并不是很高,但笔者还是决定将Flink应用在自己的项目中,自此开启了Flink分布式计算技术应用之旅。 刚开始学习Flink,对于没有分布式处理技术和流式计算经验的人来说会相对比较困难,因为其很难理解有状态计算、数据一致性保障等概念。尤其在相关中文资源比较匮乏的情况下,需要用户在官网以及国外的技术网站中翻阅大量的外文资料,这在一定程度上对学习和应用Flink造成了阻碍。笔者在2018年参加了一场由Flink中文社区组织的线下交流活动,当时听了很多领域内专家将Flink应用在不同业务场景中的分享,发现Flink这项技术虽然优秀,但是国内尚未有一本能够全面介绍Flink的中文书籍,于是笔者决定结合自己的实际项目经验来完成一本Flink中文书籍,以帮助他人学习和使用Flink这项优秀的分布式处理技术。 阿里巴巴在2018年1月开源了其内部Flink的分支项目Blink,并推动社区将Blink中优秀的特性合并到Flink主干版本中,一时间Flink在国内的发展被推向了高潮,成为很多公司想去尝试使用的新技术。因此笔者相信未来会有更多的开发者参与到Flink社区中来,Flink也将在未来的大数据生…