如何构建批流一体数据融合平台的一致性语义保证?(11)

第三,一致性写入

在 MQ 模式下,一致性写入,即 consumer offset 跟实际的数据写入目的时,必须是同时持久化的,要么全都成功,要么全部失败。

如何构建批流一体数据融合平台的一致性语义保证?

第四,一致性衔接

在 DataPipeline 的产品应用中,历史数据与实时数据的传输有时需要在一个任务中共同完成。所以产品本身需要有这种一致性衔接的能力,即历史数据和流式数据,必须能够在一个任务中,由程序自动完成它们之间的切换。

Kafka Connect 的一致性保证

Kafka Connect 如何保证数据同步的一致性?就目前版本,Kafka Connect 只能支持端到端的 at least once,核心原因在于,在 Kafka Connect 里面,其 offset 的持久化与数据发送本身是异步完成的。这在很大程度上是为了提高其吞吐量考虑,但相应产生的问题是,如果使用 Kafka Connect,框架本身只能为你提供 at least once 的语义保证。

推荐阅读