腾讯大数据Flink在云原生混合低优先级集群上的实时保障实践

Pengxiang Wang

中文演讲 #streaming
  1. 背景 a. Oceanus是腾讯的大数据实时计算平台,基于Apache Flink为实时应用提供全生命周期服务。 b. 这些计算资源是腾讯大数据通过云原生混合部署方式挖掘的闲置、低成本、低优先级资源,基于大规模联邦集群构建。这些资源具有高弹性和低成本的特点,但容易受到驱逐和不稳定性的影响。 c. 在成本降低与效率提升的目标下,利用低优先级计算资源已显著降低实时运营成本,满足腾讯广告等核心业务需求,同时对Flink的实时稳定性提出严峻挑战。

  2. 稳定性保障 a. 单点重启:在Flink内核层面实现零中断恢复,同时最小化数据丢失,针对上游/下游任务并发故障等场景进行优化,并支持有界流处理。 b. 热迁移:实现无缝、无中断的驱逐和运行能力。与腾讯云原生架构团队合作,我们将Kubernetes的驱逐-重新分配机制重新设计为状态保留迁移过程,将过渡延迟减少60%,并实现对成本高效资源的可靠利用。 c. 热更新:支持运行时配置调整,通过 TaskManager 资源预留实现水平扩展,将停机时间从分钟级缩短至秒级。
    d. 借助容器资源调整功能,我们基于腾讯 kona JDK 开发了网络缓冲区(MaxDirectMemory)的动态调整机制,以实现水平弹性扩展,并通过 pod 堆内存调整实现垂直扩展。

  3. 性能优化 a. 加速 TM 部署:通过将常用业务平台 JAR 包打包到自定义 initContainer 镜像并挂载到主容器,利用镜像缓存消除从 HDFS 的重复下载,减少带宽消耗。
    b. Flink 数据传输优化:通过用基于信用的自动分区机制替换传统重新平衡策略,有效缓解由慢节点引起的长尾效应,在广告场景中实现超过 3 倍的吞吐量提升。

  4. 未来规划 a. 在现有有损单点重启机制的基础上,探索无损恢复能力。 b. 开发通用JM故障转移高可用性解决方案,以解决JobManager的单点脆弱性。

讲师:


Pengxiang Wang,毕业于北京航空航天大学,腾讯大数据高级软件工程师,拥有丰富的实时数据处理实践经验,主要专注于Flink运行时稳定性提升。