kafka:并行的有界批处理

6ovsh4lw  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(341)

我想使用kafka执行有界批处理,程序将知道何时处理最后一条记录。
批次:
读取平面文件
把每一行作为信息发给Kafka
Kafka听众:
消耗Kafka的信息
将记录插入数据库
如果是最后一条记录,则将批处理作业标记为在数据库中完成。
一种方法可能是使用单个kafka分区,假设fifo(先进先出)得到保证,并使批处理程序发送islastrecord标志。
但是,这意味着处理将限于单个线程(单个使用者)。
问题
有没有办法通过利用多个kafka分区来实现并行处理?

svmlkihl

svmlkihl1#

如果您需要每个文件的顺序保证,那么您只能使用一个分区。
如果你有多个文件,你可以为不同的文件使用不同的分区。
如果文件中的每一行都是数据库的一个插入项,我想知道您是首先需要顺序保证,还是可以按任何顺序插入所有记录/行?
一个更基本的问题是:为什么你需要先把数据输入Kafka?为什么不直接读取文件和插入文件?

相关问题