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

DataPipeline 选择 MQ 模式,主要有几点考虑:

第一,在我们产品应用中有一个非常常见的场景:要做数据的一对多分发。数据要进行一次读取,然后分发到各种不同的目的地,这是一个非常适合消息队列使用的分发模型。

第二,有时会对一次读取的数据加不同的处理逻辑,我们希望这种处理不要重新对源端产生一次读取。所以在多数情况下,都需将数据先读到消息队列,然后再配置相应的处理逻辑。

第三,Kafka Connect 就是基于 MQ 模式的,它有大量的开源连接器。基于 Kafka Connect 框架,我们可以重用这些连接器,节省研发的投入。

第四,当你把数据抽取跟写入目的地,从处理逻辑中独立出来之后,便可以提供更强大的集成能力。因为你可以在消息队列上集成更多的处理逻辑,而无需考虑重新写整个 Job。

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

相应而言,如果你选择将 MQ 作为所有 JOB 的传输通道,就必须要克服几个缺点:

推荐阅读