如何构建批流一体数据融合平台的一致性语义保证?(12)
在该模式下,如果没有通过主键或下游应用进行额外地去重,同步过程当中的数据会在极端情况下出现重复,比如源端发送出一批数据已经成功,但 offset 持久化失败了,这样在任务恢复之后,之前已经发送成功的数据会再次重新发送一批,而下游对这种现象完全是不知情的。目的端也是如此,因为 consumer 的 offset 也是异步持久化,就会到导致有可能数据已经持久化到 Sink,但实际上 consumer offset 还没有推进。这是我们在应用原生的 Kafka Connect 框架里遇到最大的两个问题。
三、DP 的解决之道
二阶段提交协议
DataPipeline 如何解决上述问题?首先,需要用协议的方式保证每一步都做成事务。一旦做成事务,由于每个环节都是解耦的,其最终数据就可以保证一致性。下图为二阶段提交协议的最基础版本,接下来为大家简单介绍一下。
推荐阅读
- 小鱼人|如何在新赛季稳定上分?善于抓失误的小鱼人,值得认真练上一波
- 阴阳师|阴阳师SR川猿强度如何 是否值得抽卡 改变斗技环境 大佬的新玩具
- 手机游戏|梦幻西游手游:活力如何换金币 一切都已给出 就看你的选择
- 华佗|三国杀:两位\奶爸\,朱治与华佗比,强度如何呢?
- 亲朋上分|《亲朋上分》266391亲朋下分亲朋上下分永劫无间崔三娘技能介绍 崔三娘如何获得更多技能
- s6|金铲铲之战:S6双城传说如何才能快速上手?基础知识很关键
- |冰雪传奇:平民玩家四转后如何打金
- 穿越火线|CF:传说武器再度上新,那王者、炫金该如何发展?
- 打野|打野已经被削到几乎不能再削了,到底如何平衡打野位置?
- 电子竞技|新华社对话明凯、阿布,探讨电竞选手是如何炼成的?宁王无辜躺枪