《Apache Flink 案例集(2022版)》——2.数据分析——汽车之家-Flink 的实时计算平台 3.0 建设实践(1) https://developer.aliyun.com/article/1228280
平台建设
1. 预算资源管控和Flink自动伸缩容
为了提高资源利用率,汽车之家做的第一步就是启用预算的强控机制,与内部的资产云系统做对接并确定团队的可用预算,超出预算后任务将无法启动。同时对此定义了规范,用户需要先优化团队内的低利用率任务来释放预算,原则上资源利用率低的任务数应该控制在 10% 以内。如果无法优化,可以在资产云系统上发起团队间预算调拨的流程,也就是借资源;如果还是失败,则会由平台开白名单临时支持业务。
平台还上线了Flink任务健康评分机制,针对 CPU 使用率、内存使用率和空闲 slot 这几个核心规则来识别低利用率任务,同时会展示出低利用率的原因及解决方案。
此外,汽车之家通过开发Flink作业自动伸缩容功能来降低用户的调优成本。用户可以指定自动伸缩容的触发时间,比如可以指定在夜里低峰时期执行,降低伸缩容对业务的影响,支持指定 CPU 并行度、内存维度伸缩容的策略,每次执行伸缩容都会通过钉钉和邮件通知任务负责人,并且会记录伸缩容的触发原因和伸缩容之后的最新资源配置。
总结起来,汽车之家通过引入强控流程来严控计算资源的用量,通过制定规范来提升用户主动优化资源的意识,通过开发自动伸缩容功能降低用户的调优成本。最终达到的收益是在实时计算业务稳步增长的前提下全年没有新增服务器。
在流批一体方面,汽车之家准备利用 Flink 的批处理能力小范围做批处理的应用和 web 场景的试水。同时在数据湖架构的基础上,继续探索存储层面批流一体的可能性。最近汽车之家也在关注 FLIP-188 提案,它提出了一个全新的思路,将流表和批处理表进行一定程度的统一,可以实现一次 insert 就把数据同时写入到 Logstore 和 Filestore 中,让下游可以实时消费 Logstore 的数据做实时 Pipeline,也可以使用 Filestore 的批式数据做 ad_hoc 查询。后续团队希望也能做类似的尝试。
《Apache Flink 案例集(2022版)》——2.数据分析——汽车之家-Flink 的实时计算平台 3.0 建设实践(3) https://developer.aliyun.com/article/1228278