知识卡片
批次标识防重复
内容
实现恰好一次语义的关键是让每个微批次有稳定标识,并把状态更新与批次提交绑定。重试同一批次时系统能识别已提交结果,从而避免重复累加。
参考来源
- 位置:《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》第16章《微批量流处理》"16.1.1 强有序处理"一节(源文件:_epub-src/OEBPS/Text/114.xhtml)
- 结论依据:原文明确"核心理念是存储计数和最近被处理的元组ID,而不是仅仅存储一个计数……存储的ID与当前的元组ID相同。在这种情况下,计数已经包含了当前的元组,所以什么也不用做",说明把批次/元组标识与状态绑定是识别重试并避免重复累加的关键机制。
- 原始内容:核心理念是存储计数和最近被处理的元组ID,而不是仅仅存储一个计数。现在,你更新计数时,有以下两种情况:存储的ID与当前的元组ID相同。在这种情况下,计数已经包含了当前的元组,所以什么也不用做。存储的ID不同于当前的元组ID。在这种情况下,计数并没有包含当前的元组,所以增加计数器并更新存储的ID。