一、背景
作业帮是一家提供在线教育服务的公司,拥有复杂的大数据中台架构。其主要业务包括教育、辅导等,涉及大量的用户数据和业务数据。
二、作业帮数据采集体系的架构升级
架构升级
- 三个阶段:从传统的数据采集方式逐步进化到更先进的数据采集体系。
- 痛点:
- 新数据源难以扩展。
- 采集组件依赖虚拟机,导致运维成本高,资源利用率低。
- 入仓需求定制化复杂。
- MR任务缺乏物理隔离,资源争抢严重。
- 目标:支撑经营分析决策,实现低成本、高安全的工作台实时/小时级数据在线系统;满足业务分析、管理者驾驶舱及企业成本管理需求。
- 架构目标:面向不同业务场景,提供多样化的数据源支持,确保数据的安全性和准确性。
三、作业帮数据采集体系的迁移实践
数据库采集:从 Canal 到 Flink-CDC
- Canal:
- 仅支持 MySQL,扩展性差。
- 不支持全量 CDC。
- 部署在虚拟机上,运维成本高,资源利用率低。
- Flink-CDC:
- 支持多种数据库(MySQL、MongoDB、PostgreSQL 等)。
- 实现了增量和全量 CDC。
- 部署在容器化环境中,资源利用率高。
- 性能对比:
- Canal 峰值 QPS:13000。
- Flink-CDC 峰值 QPS:19000(+32%)。
- 收益:
日志采集:从虚拟机到容器化
- 规模:接入日志源超过 1000 个,每日日志量级达百亿条,每秒峰值 CPS 数百 Gbps。
- 痛点:
- 流量网关使用虚拟机部署,运维成本高。
- 后端服务容器化上云后,现有 Flume 采集接入体系难以满足需求。
- 多个外围服务管理,维护成本大,稳定性差。
- 解决方案:
- 流量网关上云。
- 基于 Kubernetes 的 done 标记实现。
- 收益:
- 成本节省显著:资源核数消耗减少 54%,运维人力从 3 人减少到 0.5 人。
- 提高了系统的可维护性和稳定性。
四、未来规划
- CDC 轻量化、整库同步:实现更优雅的迁移方案。
- 接入能力:进一步抽象,降低成本,接入更多新数据源。
- 观测性:增强入仓全链路的感知和管控能力。