如何使用python或使用任何内置方法从kafka主题中删除特定行数?

时间:2016-11-21 14:26:18

标签: apache-kafka kafka-consumer-api kafka-python

我在使用consumer.poll()方法时遇到问题。使用poll()方法获取数据之后,消费者不会提交任何数据,所以请帮我从kafka中删除特定行数话题。

1 个答案:

答案 0 :(得分:0)

在提交数据之前,您需要确保数据已完全处理,以避免在消费者失败的情况下“数据丢失”。

因此,如果您启用auto.commit,请确保在发出下一个poll()之后在poll()之后完全处理所有数据,因为每个poll()都会隐式提交所有数据来自之前的poll()

如果无法做到这一点,您应该禁用auto.commit并在通过consumer.commit(...)完全处理数据后手动提交。为此,请记住,您不需要单独提交每条消息,并且具有偏移X的提交会隐式提交具有偏移< X的所有消息(例如,在处理偏移5的消息之后,您commit offset 6 - 提交的偏移量不是最后成功处理的消息,而是您要处理的下一条消息)。并且提交偏移量6,提交偏移量为0到5的所有消息。因此,在完全处理所有具有较小偏移量的消息之前,不应提交偏移量6。