卡券是爱奇艺核心的营销与促销工具,贯穿爱奇艺的会员购买、云影院观影等商业化变现全链路。其底层数据库的性能直接关乎用户体验与业务敏捷性。
例如,促销发券、会员领券等场景均需要业务系统提供高并发事务处理(TP)能力。而在运营侧,则需要实时统计和分析发券数量、会员领券等指标,以便评估活动效果、优化营销策略,这依赖于高效的数据分析(AP)能力。
过去,卡券业务系统采用的是“MySQL 分库分表+ES 异步同步”的复杂架构:分库分表的 MySQL 来承载 TP 业务,以应对高并发海量请求;Elasticsearch(ES)来完成统计分析等 AP 类业务。
“这个卡券业务的架构基本上能为业务需求提供足够的支撑。不过,我们并不满意,一直在寻找新的解决方案。”爱奇艺高级总监张冲表示。
其最重要的原因就在于系统架构过于复杂,虽能满足业务需求,但每一个节点都需要研发投入大量精力维护,顶峰的时候研发资源占比近 80%,严重挤占了业务创新资源。
具体而言,在 TP 业务方面,通过分库分表的 MySQL 集群支撑高并发交易,但实际日常资源利用率仅约 10%,资源冗余明显。在 AP 业务方面,ES 进行运营统计分析时的数据源自订阅多个 MySQL 实例的 binlog,经消息队列 RMQ 异步同步至 ES,链路冗长,存在分钟级延迟。并且 ES 的清理归档代价较高,Reindex 开销也比较大。
此外,数据的一致性与准确性面临挑战,在异步同步过程中,甚至出现过 UV(访客数量)超过页面点击的异常,统计准确率难以保障。
张冲坦言,对现有架构进行升级更深层的原因,源于对技术进步的持续追求。“我们希望技术上再往前走一走,要和互联网行业最先进的技术保持对齐。”