01 概览
随着数字化转型的来临,企业对于数据服务的实时化需求日益增长,在大规模数据和复杂场景的情况下,Flink在实时计算数据链路中扮演着极为重要的角色,本文介绍了网盘如何通过 Flink 构建实时计算引擎,从而提供高性能、低延迟、稳定的实时计算能力。
02 百度网盘实时计算演进
2.1 百度网盘实时计算演进历程

△百度网盘实时计算演进
在 2020 年,网盘主要通过Spark Streaming和Spark Structured Streaming来用于特定场景的支持,主要是在数据同步场景、实时清洗方面的应用。
为了解决Spark Streaming存在的监控告警薄弱、接入成本高、时效性低等问题,网盘于2023年初首次引入Flink实时计算引擎,并基于百度内部StreamCompute平台快速建设集指标监控、告警、任务生命周期管理能力;经过调研测试我们发现Flink任务从0到1接入成本高、开发门槛高,因此,我们开始调研实时计算引擎的解决方案,目标是降低开发门槛、配置化任务接入,最终建设网盘内部的实时计算引擎Tiangong来为业务提供更好的支持。
截止至今,Tiangong计算引擎目前已在数据团队、反作弊团队、用户增长等场景广泛应用,并支持数百万亿的大流量场景。未来我们也计划将基于Tiangong建设网盘一体化实时计算平台,从而赋能网盘内部各个业务线实时计算能力建设。
2.2 为什么选择Flink
网盘实时计算引擎从Spark Streaming和Spark Structured Streaming演进而来,为什么放弃Spark体系选择Flink主要从以下几个方面出发:



从百度内部实时计算RoadMap和状态管理、流批一体、监控告警、任务管理、生态体系等各方面我们选择基于Flink建设网盘内部的实时计算平台。
2.3 实时计算引擎
2.3.1 实时计算引擎接入现状
目前,百度网盘的Tiangong计算引擎已接入17+应用场景,高峰时作业处理的吞吐量达到千万/s,而机器规模也已经达到了1500台,资源5800CU,并且已经覆盖用商策略、反作弊、主端一刻用增实时投放等多个场景。
2.3.2 Flink Tiangong引擎架构
如下图所示的是网盘Tiangong实时计算引擎的架构。
- 最下层为Runtime层,负责Tiangong计算任务的部署方式,目前支持StreamCompute、Kubernetes、Yarn、Local等方式;
- 核心能力包括Source组件、Sink组件以及数据转换引擎
- Source组件:支持Db、Message Queue、BigData组件、自定义Source等多个异构数据源;
- Sink组件:支持Db、Message Queue、BigData组件、自定义Sink等多个异构数据目的地;
- 数据转换引擎:支持流批一体、自定义配置化数据清洗、精准一次数据处理、失败容错、IOC容器化管理、自定义SQL拓扑、灵活监控告警等能力;

△ Tiangong计算引擎
从功能层面来看,Tiangong实时计算引擎主要包括作业管理和资源管理。其中,作业部分包括作业配置、作业上线以及作业生命周期管理三个方面的功能。
- 在作业配置方面,则包括运行环境配置、source配置、sink配置、清洗逻辑配置以及作业拓扑结构设置;
- 在作业发布方面,则包括作业启动、取消以及删除等;

- 作业状态则包括自定义规则告警、监控大盘等;

△ 自定义规则告警
<
最低0.47元/天 解锁文章
4924

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



