HeadlinesBriefing HeadlinesBriefing.com

扩展集成管道而不影响正确性

Towards Data Science •
×

企业数据集成管道面临关键挑战:在不损害数据正确性的情况下扩展吞吐量。本文详细介绍了在保持两个不可妥协的保证的前提下,将吞吐量从500扩展到8000个事件/秒的过程。

第一个保证防止后续实体状态被更早的版本覆盖。每个实体都带有源端拥有的版本号,并通过最后写入胜利机制拒绝陈旧数据,其中'最后'意味着最高版本号,而非到达时间。这使得可以在不考虑排序的情况下进行激进的并行处理。

第二个保证确保准确的重复检测。每个被接受的记录都会在同一数据库事务中写入去重日志条目和业务数据,使它们一起提交或不提交。从应用级别检查转移到数据库主键约束消除了高并发期间的重复遗漏。

吞吐量扩展采用战略性分区。通过实体ID哈希将同一实体的事件路由到同一分区,维护自然顺序。然而,当一个大账户产生100倍正常流量时,子分区使用实体ID加上事件类型作为键将热点实体分布到多个分区中。后台作业持续监控实体速率,在常规和细粒度分区之间提升和降级实体。版本检查系统吸收了子分区引入的任何无序处理。

微批处理通过消除每个事件的网络往返和减少单独的数据库事务开销,带来了实际的速度提升。

关键实体:公司:走向数据科学

来源: Towards Data Science · 由HeadlinesBriefing整理摘要