简介:7 月 7 日,Flink 1.11.0 正式发布。历时近 4 个月,Flink 在生态、易用性、生产可用性、稳定性等方面都进行了增强和改善。Apache Flink PMC、阿里巴巴高级技术专家王治江,同时也是这个版本的 release manager 之一,将和大家一一分享,并深度剖析 Flink 1.11.0 带来了哪些让大家期待已久的特性,对一些有代表性的 feature 从不同维度解读。

在进入深度解读前,我们先简单了解下社区发布的一般流程,帮助大家更好的理解和参与 Flink 社区的工作。
首先在每个版本的规划初期,会从志愿者中选出 1-2 名作为 release manager。1.11.0 版本我作为中国这边的 release manager,同时还有一名来自 Ververica 的 Piotr Nowojski 作为德国方的 release manager,这在某种程度上也说明中国的开发者和贡献度在整个社区的占比很重要。
接下来会进行这个版本的 feature kickoff。在一些大的方向上,社区的规划周期可能比较久,会分阶段、分步骤跨越多个版本完成,确保质量。每个版本的侧重点也会有所不同,比如前两个版本侧重于批处理的加强,而这个版本更侧重于流处理易用性的提升。社区规划的 feature 列表会在邮件列表中发起讨论,以收集更多的用户/开发者意见和反馈。
一般的开发周期为 2-3 个月时间,提前会明确规划出大概的 feature freeze 时间,之后进行 release candidate 的发布和测试、以及 bug fix。一般经过几轮的迭代周期后会正式投票通过一个相对稳定的 candidate 版本,然后基于这个版本正式发布。
Flink 1.11.0 从 3 月初的功能规划到 7 月初的正式发布,历经了差不多 4 个月的时间,对 Flink 的生态、易用性、生产可用性、稳定性等方面都进行了增强和改善,下面将一一跟大家分享。
一 综述
Flink 1.11.0 从 feature 冻结后发布了 4 次 candidate 才最终通过。经统计,一共有 236 个贡献者参与了这次版本开发,解决了 1474 个 jira 问题,涉及 30 多个 FLIP,提交了 2325 个 commit。


纵观近五次版本发布,可以看出从 1.9.0 开始 Flink 进入了一个快速发展阶段,各个维度指标相比之前都有了几乎翻倍的提高。也是从 1.9.0 开始阿里巴巴内部的 Blink 项目开始被开源 Flink 整合,到 1.10.0 经过两个大版本已经全部整合完毕,对 Flink 从生态建设、功能性、性能和生产稳定性上都有了大幅的增强。
Flink 1.11.0 版本的最初定位是重点解决易用性问题,提升用户业务的生产使用体验,整体上不做大的架构调整和功能开发,倾向于快速迭代的小版本开发。但是从上面统计的各个指标来看,所谓的“小版本”在各个维度的数据也丝毫不逊色于前两个大版本,解决问题的数量和参与的贡献者人数也在持续增加,其中来自中国的贡献者比例达到 62%。
下面我们会深度剖析 Flink 1.11.0 带来了哪些让大家期待已久的特性,从用户直接使用的 API 层一直到执行引擎层,我们都会选择一些有代表性的 feature 从不同维度解读,更完整的 feature 列表请大家关注发布的 release blog。
二 生态完善和易用性提升
这两个维度在某种程度上是相辅相成的,很难严格区分开,生态兼容上的缺失常常造成使用上的不便,提升易用性的过程往往也是不断完善相关生态的过程。在这方面用户感知最明显的应该就是 Table & SQL API 层面的使用。
1 Table & SQL 支持 Change Data Capture(CDC)
CDC 被广泛使用在复制数据、更新缓存、微服务间同步数据、审计日志等场景,很多公司都在使用开源的 CDC 工具,如 MySQL CDC。通过 Flink 支持在 Table & SQL 中接入和解析 CDC 是一个强需求,在过往的很多讨论中都被提及过,可以帮助用户以实时的方式处理 changelog 流,进一步扩展 Flink 的应用场景,例如把 MySQL 中的数据同步到 PG 或 ElasticSearch 中,低延时的 temporal join 一个 changelog 等。
除了考虑到上面的真实需求,Flink 中定义的“Dynamic Table”概念在流上有两种模型:append 模式和 update 模式。通过 append 模式把流转化为“Dynamic Table”在之前的版本中已经支持,因此在 1.11.0 中
Flink1.11.0版本亮点

最低0.47元/天 解锁文章
4028

被折叠的 条评论
为什么被折叠?



