趣头条基于 Flink 的实时平台建设实践
本文由趣头条实时平台负责人席建刚分享趣头条实时平台的建设,整理者叶里君。文章将从平台的架构、Flink 现状,Flink 应用以及未来计划四部分分享。 一.平台架构 1.Flink 应用时间线 首先是平台的架构,2018 年 3 月之前基本都是基于 Storm 和 Spark Streaming 来做的。目前,基本已经把 Spark Streaming 和 Storm 淘汰了,主要都是 Flink SQL 来做的。起初还比较传统,一般是接需求然后开发类似于 Flink SQL 的任务,基本是手工作坊操作模式。 后来 Flink SQL 的任务逐渐多了起来,就开始考虑往平台化方向发展。大概在 2018 年 10 月份,我们开始搭建实时平台。当时设计实时平台时就直接抛弃了 Spark Streaming 和 Storm,基础理念设计的时候,主要以 Flink 场景来设计平台。趣头条实时平台上线将近两个月后,当时任务量并不多,由于趣头条基本都是 PHP 和 Golang 开发语言,而Flink更偏向于 Java 包括它 API 的提供,所以经常会接到用户需求,如: Golang 能不能开发, PHP 能不能开发? 这个问题听起来比较奇怪,但是对于不会用并且确实也想用的用户,就需要想办法解决这个问题。后来我们做了一版类似于 Flink SQL 配置化开发,可以让用户不用写Flink 代码