DoorDash 开发基于 Apache Flink 的实时会话化平台
DoorDash 工程团队的陈阳(Chen Yang)和张帆(Fan Zhang)最近开发了一个基于 Apache Flink 的内存会话化平台,能够实时识别用户活动和用户会话。这一新系统解决了 DoorDash 此前面临的一个重要挑战:准确区分用户是真正放弃了购物车,还是仅仅在浏览更多商品或不同商家。这种区分对于发送及时且相关的购物车放弃通知至关重要。传统方法(如批处理)不仅资源消耗大,还存在延迟,使得实时检测几乎不可能实现。
新平台的设计与优势
新会话化平台通过一个大型、有状态的 Flink 作业来监控移动和网页客户端事件,并在内存中处理用户活动事件流。这种设计避免了“在处理前将大量数据从冷存储加载到内存”的需求,从而降低了巨大的计算成本和延迟。此外,新平台能够在短时间内检测到用户的不活动状态,从而在更合适的时机发送通知。
面临的挑战
尽管新平台带来了显著的优势,但也面临一些挑战。由于 Flink 实时处理所有事件并存储在内存中,它需要保留所有用户会话事件,直到会话结束。考虑到 DoorDash 的规模以及每个客户会话通常持续约一个小时,本地内存中的状态数据可能在任何时刻达到数百 GB。
成果与未来计划
DoorDash 采用 Apache Flink 进行实时会话检测和通知发送,显著提升了用户参与度和转化率。新设计帮助 DoorDash 大幅提高了通知发送的及时性和准确性,使发送到打开率提高了 40%。这一成功已促使 DoorDash 进行一系列新的实验,包括在购物车放弃通知中添加促销信息,以及控制购物车放弃通知的频率。
数据流图
实时会话检测数据流,由 DoorDash 工程团队设计。
通过这一创新平台,DoorDash 不仅优化了用户体验,还为其业务增长提供了强有力的技术支持。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。