当前,我们正在使用Apache NiFi通过Kafka使用者使用消息。 kafka使用者的输出连接到DB处理器,该处理器将消息(从使用者)获取到队列中并在其上运行存储的proc /处理。因此,DB处理器将对每个队列中的每个消息处理一条消息,并且我可以将DB处理器设置为对n个线程并行工作,但是基本上每个线程对每个队列可以处理一条消息。
我正在尝试执行以下操作:
所以我想知道任何可以执行以上第2点的处理器,即仅读取消息并根据批处理/时间规则将其推送到下一个?
答案 0 :(得分:0)
如果可以利用NiFi的记录处理器,则使用批处理大小为1000的ConsumeKafkaRecord,然后使用PutDatabaseRecord,将为您提供与您所描述的类似的行为。
如果在使用时您可能并不总是在Kafka主题中有足够的消息可用,那么在中间添加MergeContent或MergeRecord将使您等待一定的时间或数量的消息。