Kafka-阅读一包消息

时间:2018-07-04 04:24:04

标签: apache-kafka batch-processing messaging kafka-consumer-api

我有一个批处理作业,它将数据填充到Kafka主题。每个消息都有数据和作业标识符。 在消费者方面,我只想阅读属于此作业的消息。在工作完成并消耗了所有消息之后,消费者方必须进行一些后处理。

1)如果可以保证,在作业过程中不会再产生其他消息,我如何理解该作业已完成并且该作业产生的所有消息都被消耗掉了? (考虑多个分区和异步性)。

2)如果不能保证,在工作期间不会再产生其他消息,我相信可以跳过噪音。

谢谢

2 个答案:

答案 0 :(得分:0)

我假设job_id是常数。在这种情况下,如果n随后的民意调查从Kafka返回空记录,则可以关闭使用者的支票。 n取决于您的摄取速度和消费者的调查间隔。

答案 1 :(得分:0)

我只在这里谈论第一种情况。请注意,这只是一个主意,我自己从未尝试过

您可以使用endOffsets()获取所有分区的最后偏移量,然后在每条消息后循环遍历所有分区,以检查所有当前偏移量是否与结束偏移量匹配。如果都匹配,那么您已经到了最后。