作者:肖强(TalkingData 资深工程师)
一、背景与痛点
在 2017 年上半年以前,TalkingData 的 App Analytics 和 Game Analytics 两个产品,流式框架使用的是自研的 td-etl-framework。该框架降低了开发流式任务的复杂度,对于不同的任务只需要实现一个 changer 链即可,并且支持水平扩展,性能尚可,曾经可以满足业务需求。
但是到了 2016 年底和 2017 年上半年,发现这个框架存在以下重要局限:
- 性能隐患:App Analytics-etl-adaptor 和 Game Analytics-etl-adaptor 这两个模块相继在节假日出现了严重的性能问题(Full-GC),导致指标计算延迟。
- 框架的容错机制不足:依赖于保存在 Kafka 或 ZK 上的 offset,